GDB調試器的簡單使用

一、GDB調試器的使用

1)產生調試信息

編譯指定的.c文件或.cpp文件時加入-g選項,使生成的可執行文件中包含調試所需的信息。

  如:gcc -g xx.c -o xx | g++ -g xx.cpp -o xx

2)進入調試狀態

  gdb xx(xx是含調試信息的可執行文件)

3)基本調試命令

命令簡寫 命令全拼 具體功能
b 行號 | 函數名稱 | 代碼地址 break 在指定的行號、函數入口、代碼地址處設置斷點;
bt backtrace 回溯,通常能幫我們確定問題的具體位置;
clear <斷點行號> clear 清除指定行號的斷點,清除時GDB有提示信息;
c continue 繼續執行被調試的程序,直到下一個斷點或程序結束;
delete <斷點編號> delete 清除指定編號的斷點,清除時GDB沒有提示信息;(可同時清除多個斷點)
disable <斷點編號> disable 使指定編號的斷點失效;(可同時設置多個斷點)
enable <斷點編號> enable 使指定編號的斷點恢復作用;(可同時設置多個斷點)
finish finish 執行完當前的子函數,然後停下來等待命令;
h <命令名稱> help 查看指定命令的具體幫助信息;
i <subcommands> info 查看指定的信息,具體見help i,如:address、breakpoints …
l list 列出源代碼,接着上次的位置往下列,每次列10行;
l <行號> 列出指定行號附近的源代碼;
l <函數名> 列出指定函數附近的源代碼;
n next 執行程序的下一行,遇到函數會直接執行;
p <變量名稱> print 查看並顯示指定變量的值;
q quit 退出GDB調試環境;
r run 開始執行程序,遇到斷點後暫停;
s step 單步執行,遇到函數會跳轉進入函數體內;
set <變量> set 修改指定變量的值;
shell <命令> shell 運行shell中的指定命令;
signal <信號名稱> signal 把指定的信號發送給當前運行調試的程序;
start start 開始執行程序,直到main()第一行語句前面等待命令;
whatis <變量> 查看指定變量或表達式的數據類型;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章