Linux gdb除錯程式
- gdb 可執行檔案 進入gdb除錯環境,輸出介紹資訊
gdb -g 可執行檔案 進入除錯環境,可以不輸出介紹資訊
2、list命令 顯示除錯檔案程式碼(預設顯示10行,敲回車鍵繼續輸出10行...超出檔案總行數,會提示如:Line number 27 out of range; ex5-3.c has 26 lines.)本檔案共num行, 超出行數。
list預設引數可以用show listsize來檢視,如果感覺10行太多或者太少,還可以用set listsize <count>來更改。
List num1,num2 顯示num1行到num2行程式碼
list func 顯示func函數週圍的程式碼,顯示範圍和list引數有關;
List c原始檔名:num1,num2 顯示該檔案num1行到num2行程式碼(一般用於除錯多個原始檔的程式)
gdb 還支援字串查詢,search str,從當前行開始,向前查詢含str的字串;
3、shell clear 清屏效果
4、break num 在第num行設定斷點
info breakpoints 顯示設定的斷點資訊(Num表示斷點的編號;Type表示斷點的斷點的型別,第二個斷點型別還加上了條件;Disp表示中斷點在執行一次之後是否失去作用,dis為是,keep為不是;Enb表示當前中斷點是否有效,y為是,n為否;Address表示中斷點所處的記憶體地址;What指出斷點所處的位置)
如果不需要程式在該斷點暫停時,有兩種方法,一種是使該斷點失效,一種是直接刪除該斷點
disable 斷點編號 Enb變為n
clear 斷點所在行號 刪除斷點
delete 斷點編號 刪除斷點
delete 提示是否刪除全部斷點 y or n
5、run/r 開始執行程式(若有斷點,在斷點出停止執行 )
Continue/c 程式繼續執行(若有第二個斷點,在第二個斷點處停止執行,continue/c繼續執行)
如果在斷點出有值的操作,可以執行print 變數 來輸出變數值進行檢測
在斷點出停止執行後,next/n來繼續執行,只執行一條語句
6、quit/q 結束此次除錯