1. 程式人生 > >Linux gdb除錯程式

Linux gdb除錯程式

  1. 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 結束此次除錯