(gdb) l(list)
//列出(line-5)行到(line-1+5)行間的內容
(gdb) l(list)
//列出(line1)行到(line2)行間的內容
(gdb) r(run) ...,argn> //若「不列出引數」,則使用「上次輸入引數」
(gdb) show args //檢視當前使用「引數」
(gdb) set args ...,argn> //設定當前使用「引數」
(gdb) b(break) //在執行到第line行時中斷
(gdb) b(break) //在執行func時中斷
(gdb) b(break) if
//在exp成立時設定斷點
(gdb) b(break) //在檔案file的第line行設定斷點
(gdb) info break //檢視斷點資訊
(gdb) d(delete) breakpoint
//刪除第point號斷點
(gdb) enable breakpoint
//使能第point號斷點
(gdb) disable breakpoint
//禁用第point號斷點
(gdb) clear
//刪除所有斷點
(gdb) clear
//刪除第line行上的所有斷點
(gdb) watch //當exp成立時觸發中斷,輸出觀察點資訊
(gdb) p(print) //列印變數var的值
(gdb) p(print) var> //列印變數var的值
(gdb) p(print) var> //列印變數var的值
(gdb) p(print) *array@end //列印陣列array從0號到end-1號元素的值
(gdb) p/x //以「十六進製制」列印變數var的值
(gdb) p/d //以「十進位制」列印變數var的值
(gdb) p/u //以「十進位制無符號數」列印變數var的值
(gdb) p/o //以「八進位制」列印變數var的值
(gdb) p/t //以「二進位制」列印變數var的值
(gdb) p/a //以「十六進製制」列印變數var的值
(gdb) p/c //以「字元格式」列印變數var的值
(gdb) p/f //以「浮點數」列印變數var的值
(gdb) x(examine) /nfu //數量n 顯示n個單位的記憶體內容
//格式f s:字串,i:指令,其他與print相同
//單位u b:1,h:2,w:4,g:8
(gdb) display /f //格式f 與examine相同
(gdb) info display //顯示所有自動顯示的變數資訊
(gdb) display //刪除所有自動顯示變數
(gdb) delete display //刪除編號為dnums的自動顯示變數
(gdb) enable display //使能第dnums號自動顯示變數
(gdb) disable display //禁用第dnums號自動顯示變數
(gdb) printf
$n //顯示第n個歷史記錄的值
(gdb) info registers //顯示所有暫存器(不包括浮點暫存器)的值
(gdb) info all
-registers
//顯示所有暫存器(包括浮點暫存器)的值
(gdb) info registers
//顯示暫存器reg的值
set
$var=i
show convenience
print/set i=30
jump set
$pc=0x45
signal
handle
//whattodo: nostop stop print noprint pass nopass
call func(arg1,arg2,...)
return
gdb exe core
bt(backtrace)
frame n
info locals
gdb exe pid
detach
attach pid
search regexp //向下搜尋匹配行
reverse-search regexp //向上搜尋匹配行
print
$_//列印匹配行號
$ip 當前指令位址
$pc 當前指令內容
$fp 幀指標
$sp 棧指標
$ps 處理器狀態
info line n //列印行n在記憶體中的位置
disassemble func //檢視函式func的反彙編
使用 gdb 除錯多程序程式
detach-on-fork引數,指示gdb在fork之後是否斷開(detach)某個程序的除錯,或者都交由gdb控制:
set detach-on-fork [on|off]
上述三種方法各有特點和優劣,因此適應於不同的場合和環境:
pwd
cdquit
shell [cmdline]
show language
info frame
info source
set language
(gdb) set debug-file-directory
(gdb) show debug-file-directory
GDB除錯手冊
linux 包含了乙個叫gdb 的gnu 除錯程式。gdb 是乙個用來除錯c和c 程式的強力偵錯程式。它使你能在程式執行時觀察程式的內部結構和記憶體的使用情況。以下是 gdb 所提供的一些功能 它使你能監視你程式中變數的值 它使你能設定斷點以使程式在指定的 行上停止執行 它使你能一行行的執行你的 在...
gdb除錯手冊
gdb原理 利用作業系統提供的系統呼叫ptrace。詳情請看。gdb進行除錯的程序建議編譯引數新增 g 並去掉strip g3可在gdb列印巨集 儲存與恢復斷點 設定每步都列印的內容 gdb p ps ef grep worker grep v grep awk x a.txt 檔案內容 b rec...
gdb除錯相關指令
the gnu project debugger 1編譯2開啟gdb,設定相關斷點 r 或run 執行,前提是先要把斷點設定好 n 或next 下一步。c 或continue 執行至斷點,沒斷點就執行至結束 s 或step 進入函式體內部,不能進入就單步,可看見函式引數值,l 可看函式 b可增加斷點...