在linux下編譯程序要用到gdb,我一直記不到幾個命令,所以轉(zhuǎn)來一篇講解gdb命令的帖子,一邊隨時查找。
作者:yrj 的 Blog
gdb 命令詳解

awatch

指定一個變量,如果這個變量被讀或者被寫,則暫停程序運(yùn)行,在調(diào)試器中顯示信息,并等待下一個調(diào)試命令。參考rwatchwatch命令。

backtrace

顯示函數(shù)調(diào)用得所有棧框架(stack frames)的 蹤跡和當(dāng)前函數(shù)的參數(shù)的值,bt是這個命令的簡寫。

break

設(shè)置一個斷點(diǎn),這個命令需要指定代碼行或者函數(shù)名作為參數(shù)

clear

刪除一個斷點(diǎn),這個命令需要制定代碼行或者函數(shù)名作為參數(shù)

continue

調(diào)試器停止的地方繼續(xù)執(zhí)行

Ctrl-C

在當(dāng)前位置停止執(zhí)行正在執(zhí)行的程序,斷點(diǎn)在當(dāng)前行

disable

禁止斷點(diǎn)功能,這個命令需要禁止的斷點(diǎn)在斷點(diǎn)列表索引值作為參數(shù)

display

在斷點(diǎn)的停止的地方,顯示指定的表達(dá)式的值。(顯示變量)

enable

允許斷點(diǎn)功能,這個命令需要允許的斷點(diǎn)在斷點(diǎn)列表索引值作為參數(shù)

finish

繼續(xù)執(zhí)行,知道當(dāng)前函數(shù)返回

ignore

忽略某個斷點(diǎn)制定的次數(shù)。例:ignore 4 23 忽略斷點(diǎn)423次運(yùn)行,在第24次的時候中斷

info breakpoints

查看斷點(diǎn)信息

info display

查看設(shè)置的需要顯示的表達(dá)式的信息

kill

終止當(dāng)前debug的進(jìn)程

list

顯示10行代碼。如果沒有提供參數(shù)給這個命令,則從當(dāng)前行開始顯示10行代碼。
如果提供了函數(shù)名作為參數(shù),則從函數(shù)開頭顯示。如果提供代碼行的編號作為參
數(shù),這一行作為開頭顯示。

load

動態(tài)載入一個可執(zhí)行文件到調(diào)試器。

next

執(zhí)行下一行的源代碼的所有指令。如果是函數(shù)調(diào)用,則也當(dāng)作一行源代碼,執(zhí)行到此函數(shù)返回

nexti

執(zhí)行下一行的源代碼中的一條匯編指令

print

顯示變量的值

ptype

顯示變量的類型

return

強(qiáng)制從當(dāng)前函數(shù)返回

run

從程序開始的地方執(zhí)行

rwatch

指定一個變量,如果這個變量被讀,則暫停程序運(yùn)行,在調(diào)試器中顯示信息,并等待下一個調(diào)試命令。參考rwatchwatch命令。

set

設(shè)置變量的值。例如:set nval=54 將把54保存到nval變量中

step

繼續(xù)執(zhí)行程序下一行源代碼的所有指令。如果是調(diào)用函數(shù),這個命令將進(jìn)入函數(shù)的內(nèi)部,單步執(zhí)行函數(shù)中代碼。

stepi

繼續(xù)執(zhí)行程序下一行源代碼中的匯編指令。如果是函數(shù)調(diào)用,這個命令將進(jìn)入函數(shù)的內(nèi)部,單步執(zhí)行函數(shù)中的匯編代碼。

txbreak

在當(dāng)前函數(shù)的退出的點(diǎn)上設(shè)置一個臨時的斷點(diǎn)(只可使用一次)。

undisplay

刪除一個display設(shè)置的變量顯示。這個命令需要將display list中的索引做參數(shù)。

watch

指定一個變量,如果這個變量被寫,則暫停程序運(yùn)行,在調(diào)試器中顯示信息,并等待下一個調(diào)試命令。參考rwatchwatch命令。

whatis

顯示變量的值和類型。

xbreak

在當(dāng)前函數(shù)的退出的點(diǎn)上設(shè)置一個斷點(diǎn)。