Gdb調(diào)試
成都創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)公司、網(wǎng)站制作、網(wǎng)站營(yíng)銷(xiāo)推廣、網(wǎng)站開(kāi)發(fā)設(shè)計(jì),對(duì)服務(wù)成都混凝土泵車(chē)等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司成立于2013年,提供專(zhuān)業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶(hù),為客戶(hù)提供賞心悅目的作品。 與客戶(hù)共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!
注意:在Gcc編譯選項(xiàng)中一定要加入
–g
退出GDB:quit
或
Ctrl+d
調(diào)試過(guò)程:
1.
查看文件
命令:
(gdb)
l
命令:(gdb)
b
行號(hào)
注:到第17行停止,并沒(méi)有執(zhí)行17行
3.
查看斷點(diǎn)情況
info
b
4.
運(yùn)行代碼
r
命令:
(gdb)
r
(也可以指定行開(kāi)始運(yùn)行,在r后面加上行號(hào))
5.
查看變量值
p
命令:(gdb)
p
變量名
6.
設(shè)置監(jiān)視點(diǎn):
watch
z
(變量名)
也可以是復(fù)雜的表達(dá)式
7.
單步運(yùn)行
命令:(gdb)
n
(逐過(guò)程)
8.逐步,會(huì)進(jìn)入函數(shù)
命令:(gdb)
s
9.條件斷點(diǎn)
將正常斷點(diǎn)轉(zhuǎn)變?yōu)闂l件斷點(diǎn):condition
如:condition
1
i
==
10
只有當(dāng)滿(mǎn)足條件i
==
1時(shí),才會(huì)在斷點(diǎn)1處暫停
10.
恢復(fù)程序運(yùn)行
c
命令:
(gdb)
c
(程序就會(huì)運(yùn)行,如果沒(méi)有斷點(diǎn),就運(yùn)行剩下部分,如果有斷點(diǎn),就會(huì)運(yùn)行到下一個(gè)斷點(diǎn))
11.
去除斷點(diǎn)
clear
line_number
clear
filename:line_number
12.
help
12.1
help找出類(lèi)別
12.2help從列表中
首先,一般的命令其實(shí)也都是程序
裝在系統(tǒng)路徑下的程序的程序名,都可以作為命令直接調(diào)用
具體哪些路徑是“系統(tǒng)路徑”,Linux下可以用$PATH$命令來(lái)查看(通常會(huì)有多個(gè)路徑,用冒號(hào)隔開(kāi))
而gdb其實(shí)是gcc/g++編譯器的一個(gè)附帶的調(diào)試器
雖然現(xiàn)在主流的Linux發(fā)行版中都會(huì)自帶gcc編譯器,當(dāng)然也會(huì)附帶這個(gè)gdb的調(diào)試器
但畢竟它不算是Linux系統(tǒng)的內(nèi)部組件,所以自然也不能算做Linux的自帶命令了
分類(lèi): 電腦/網(wǎng)絡(luò) 操作系統(tǒng)/系統(tǒng)故障
問(wèn)題描述:
第一次在Linux上工作,要用到一個(gè)什么gdb的東東。gdb到底是什么呢,各位老大?
解析:
Linux 包含了一個(gè)叫 gdb 的 GNU 調(diào)試程序. gdb 是一個(gè)用來(lái)調(diào)試 C 和 C++ 程序的強(qiáng)力調(diào)試器. 它使你能在程序運(yùn)行時(shí)觀察程序的內(nèi)部結(jié)構(gòu)和內(nèi)存的使用情況. 以下是 gdb 所提供的一些功能:
它使你能監(jiān)視你程序中變量的值.
它使你能設(shè)置斷點(diǎn)以使程序在指定的代碼行上停止執(zhí)行.
它使你能一行行的執(zhí)行你的代碼.
在命令行上鍵入 gdb 并按回車(chē)鍵就可以運(yùn)行 gdb 了, 如果一切正常的話(huà), gdb 將被啟動(dòng)并且你將在屏幕上看到類(lèi)似的內(nèi)容:
GDB is free sofare and you are wele to distribute copies of it
under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.14 (i486-slakware-linux), Copyright 1995 Free Sofare Foundation, Inc.
(gdb)
當(dāng)你啟動(dòng) gdb 后, 你能在命令行上指定很多的選項(xiàng). 你也可以以下面的方式來(lái)運(yùn)行 gdb :
gdb fname
當(dāng)你用這種方式運(yùn)行 gdb , 你能直接指定想要調(diào)試的程序. 這將告訴gdb 裝入名為 fname 的可執(zhí)行文件. 你也可以用 gdb 去檢查一個(gè)因程序異常終止而產(chǎn)生的 core 文件, 或者與一個(gè)正在運(yùn)行的程序相連. 你可以參考 gdb 指南頁(yè)或在命令行上鍵入 gdb -h 得到一個(gè)有關(guān)這些選項(xiàng)的說(shuō)明的簡(jiǎn)單列表.