命令
解釋
示例
file 《檔名》
載入被除錯的可執行程式檔案。
因為一般都在被除錯程式所在目錄下執行gdb,因而文字名不需要帶路徑。
(gdb) file gdb-sample
rrun的簡寫,執行被除錯的程式。
如果此前沒有下過斷點,則執行完整個程式;如果有斷點,則程式暫停在第乙個可用斷點處。
(gdb) r
ccontinue的簡寫,繼續執行被除錯程式,直至下乙個斷點或程式結束。
(gdb) c
b 《行號》
b 《函式名稱》
b *《函式名稱》
b *《**位址》
d [編號]
b: breakpoint的簡寫,設定斷點。兩可以使用「行號」「函式名稱」「執行位址」等方式指定斷點位置。
其中在函式名稱前面加「*」符號表示將斷點設定在「由編譯器生成的prolog**處」。如果不了解彙編,可以不予理會此用法。
d: delete breakpoint的簡寫,刪除指定編號的某個斷點,或刪除所有斷點。斷點編號從1開始遞增。
(gdb) b 8
(gdb) b main
(gdb) b *main
(gdb) b *0x804835c
(gdb) d
s, n
s: 執行一行源程式**,如果此行**中有函式呼叫,則進入該函式;
n: 執行一行源程式**,此行**中的函式呼叫也一併執行。
s 相當於其它偵錯程式中的「step into (單步跟蹤進入)」;
n 相當於其它偵錯程式中的「step over (單步跟蹤)」。
這兩個命令必須在有源**除錯資訊的情況下才可以使用(gcc編譯時使用「-g」引數)。
(gdb) s
(gdb) n
si, ni
si命令類似於s命令,ni命令類似於n命令。所不同的是,這兩個命令(si/ni)所針對的是彙編指令,而s/n針對的是源**。
(gdb) si
(gdb) ni
p 《變數名稱》
print的簡寫,顯示指定變數(臨時變數或全域性變數)的值。
(gdb) p i
(gdb) p nglobalvar
display ...
undisplay 《編號》
display,設定程式中斷後欲顯示的資料及其格式。
例如,如果希望每次程式中斷後可以看到即將被執行的下一條彙編指令,可以使用命令
「display /i $pc」
其中 $pc 代表當前彙編指令,/i 表示以十六進行顯示。當需要關心彙編**時,此命令相當有用。
undispaly,取消先前的display設定,編號從1開始遞增。
(gdb) display /i $pc
(gdb) undisplay 1 i
info的簡寫,用於顯示各類資訊,詳情請查閱「help i」。
(gdb) i r
qquit的簡寫,退出gdb除錯環境。
(gdb) q
help [命令名稱]
gdb幫助命令,提供對gdb名種命令的解釋說明。
如果指定了「命令名稱」引數,則顯示該命令的詳細說明;如果沒有指定引數,則分類顯示所有gdb命令,供使用者進一步瀏覽和查詢。
(gdb) help display
gdb使用筆記
gdb使用常用指令 ubuntu下很多獨有的 不用寫全也可以執行,可以說這是ubuntu的特點之一 1 啟動 gdb filename 2 新增斷點 gdb pos,pos可以是行號也可以是函式名,甚至其他形式 3 刪除斷點 delete breakpoint breakpoint為斷點id,cle...
GDB使用筆記
命令 作用l list 顯示原始碼 b break 設定斷點 r run 執行程式 bt或where 顯示呼叫棧 n next 單步執行 不進入函式 s step 單步執行 進入函式 layout next 分割視窗,檢視原始碼 watch 監視變數,當變數變化時列印 p print var 列印變...
GDB學習使用筆記
首先說明我使用的gdb版本及作業系統版本資訊如下 gdb是gnu 的原始碼偵錯程式。fred fish,原真主保佑他,關於他的生平可以在了解一下。這裡有gdb最新版的文件,可以參考!gdb簡介 偵錯程式 比如象gdb 能讓你觀察另乙個程式在執行時的內部活動,或程式出錯時發生了什麼。gdb主要能為你做...