在linux下編譯程序要用到gdb,我一直記不到幾個命令,所以轉來一篇講解gdb命令的帖子,一邊隨時查找。
作者:yrj 的 Blog
gdb 命令詳解
awatch
|
指定一個變量,如果這個變量被讀或者被寫,則暫停程序運行,在調試器中顯示信息,并等待下一個調試命令。參考rwatch和watch命令。
|
backtrace
|
顯示函數調用得所有棧框架(stack frames)的 蹤跡和當前函數的參數的值,bt是這個命令的簡寫。
|
break
|
設置一個斷點,這個命令需要指定代碼行或者函數名作為參數
|
clear
|
刪除一個斷點,這個命令需要制定代碼行或者函數名作為參數
|
continue
|
調試器停止的地方繼續執行
|
Ctrl-C
|
在當前位置停止執行正在執行的程序,斷點在當前行
|
disable
|
禁止斷點功能,這個命令需要禁止的斷點在斷點列表索引值作為參數
|
display
|
在斷點的停止的地方,顯示指定的表達式的值。(顯示變量)
|
enable
|
允許斷點功能,這個命令需要允許的斷點在斷點列表索引值作為參數
|
finish
|
繼續執行,知道當前函數返回
|
ignore
|
忽略某個斷點制定的次數。例:ignore 4 23 忽略斷點4的23次運行,在第24次的時候中斷
|
info breakpoints
|
查看斷點信息
|
info display
|
查看設置的需要顯示的表達式的信息
|
kill
|
終止當前debug的進程
|
list
|
顯示10行代碼。如果沒有提供參數給這個命令,則從當前行開始顯示10行代碼。 如果提供了函數名作為參數,則從函數開頭顯示。如果提供代碼行的編號作為參 數,這一行作為開頭顯示。
|
load
|
動態載入一個可執行文件到調試器。
|
next
|
執行下一行的源代碼的所有指令。如果是函數調用,則也當作一行源代碼,執行到此函數返回
|
nexti
|
執行下一行的源代碼中的一條匯編指令
|
print
|
顯示變量的值
|
ptype
|
顯示變量的類型
|
return
|
強制從當前函數返回
|
run
|
從程序開始的地方執行
|
rwatch
|
指定一個變量,如果這個變量被讀,則暫停程序運行,在調試器中顯示信息,并等待下一個調試命令。參考rwatch和watch命令。
|
set
|
設置變量的值。例如:set nval=54 將把54保存到nval變量中
|
step
|
繼續執行程序下一行源代碼的所有指令。如果是調用函數,這個命令將進入函數的內部,單步執行函數中代碼。
|
stepi
|
繼續執行程序下一行源代碼中的匯編指令。如果是函數調用,這個命令將進入函數的內部,單步執行函數中的匯編代碼。
|
txbreak
|
在當前函數的退出的點上設置一個臨時的斷點(只可使用一次)。
|
undisplay
|
刪除一個display設置的變量顯示。這個命令需要將display list中的索引做參數。
|
watch
|
指定一個變量,如果這個變量被寫,則暫停程序運行,在調試器中顯示信息,并等待下一個調試命令。參考rwatch和watch命令。
|
whatis
|
顯示變量的值和類型。
|
xbreak
|
在當前函數的退出的點上設置一個斷點。
|