Linux下gdb的使用


一、編譯文件生成可執行文件

   如果想用調試器執行一個可執行文件, 在用gcc編譯時必須加上-g選項。

  加上-g選項以后,gcc在編譯是會做以下額外的操作:

    1. 創建符號表,符號表包含了程序中使用的變量名稱的列表。

    2. 關閉所有的優化機制,以便程序執行過程中嚴格按照原來的C代碼進行。

二、ulimit -c unlimited 允許生成core文件

 

三、gdb a.out 或者先輸入gdb 然后 file a.out  進入調試

 四、r/run 開始運行程序

 五、l /list  顯示多行源代碼

1. list  從上次的位置開始顯示,默認情況下,一次顯示10行。

2. list n顯示以第n行為中心的10行代碼

 3. list functionname顯示以functionname的函數為中心的10行代碼

 4. list - 顯示剛才打印過的源代碼之前的代碼

5.set listsize n 設置顯示的行數

6.show listsize顯示當前設置顯示的行數

 六、b/break  設置斷點 程序運行到斷點時會停下

1. break location:在location位置設置斷點,改位置可以為某一行,某函數名或者其它結構的地址。

2. info breakpoint:查看斷點信息。

3. delete breakpoints 斷點號:刪除斷點。

七、display/disp  跟蹤查看某個變量,每次停下都顯示它的值

也可以使用disable,enable,delete,info命令修改及查看其狀態,用法與對斷點的一樣

八、s/step 執行下一條語句,如果該語句為函數調用,則進入函數執行其中的第一條語句

九、n/next 執行下一條語句,如果該語句為函數調用,不會進入函數內部執行(即不會一步步地調試函數內部語句)

十、p/print 打印內部變量值

十一、c/continue 繼續運行程序,直到遇到下一個斷點

十二、set var name=value 在程序運行中動態改變變量的值

十三、watch 監視變量值的變化

十四、backtrace/bt 查看堆棧使用信息

十五、f/frame 查看某一幀的堆棧信息

f  n 查看第n條堆棧信息。

十六、k/kill 終止正在調試的程序

十七:q/quit 退出gdb環境

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM