GDB

       Linux軟件開發人員,必須會的4個工具

       Gcc編譯器,把源文件轉換為可執行程序

Vim linux下,文本編輯器

Gdb 調試器,檢查程序的邏輯錯誤gnu debugger

Makefile 工程管理工具

GDB常用命令

LINUX 下 GDB  調試小結---->基礎知識_GDB

調試的步驟

GDB一般調試

  1. 編譯自己代碼的時候選擇-g(給a.out加入調試信息):
  2. gcc -g 1.c  
  3. 啓動調試器:
  4. gdb ./a.out  
  5. 設置斷點(希望程序運行起來後,暫停在某一個位置):
  6. 方式一:b 16     ->break 設置斷點在main函數所在的第16行
  7. 方式二:b 1.c:36 ->多文件中,斷點設置1.c的第36行
  8. 方式三:b fun    ->斷點設置在fun函數,只要fun被調用就會暫停
  9. 讓程序運行起來
  10. r -> run 運行程序
  11. r 1 2 -> run 運行程序。如果你的程序需要命令行參數時候  ./a.out 1 2 
  12. 這個時候,程序就應該暫停在 斷點的地址
  13. p 變量  ->print  查看變量
  14. p 指針  ->  
  15. p*指針  ->  
  16. 程序向下運行一步,繼續找錯誤
  17. 當前代碼中,是否有函數調用
  18. n ->next    函數就執行完
  19. s ->step into 進入函數體一步運行,只進入自定義函數
  20. 5-6步的循環,直到找到錯誤

段錯誤調試

  1. 編譯自己代碼的時候選擇-g(給a.out加入調試信息):

gcc -g 1.c  

  1. 啓動調試器:

gdb ./a.out  

  1. 讓程序運行起來,因為不知道程序那個地方出現段錯,不需要下斷點

r -> run 運行程序

r 1 2 -> run 運行程序。如果你的程序需要命令行參數時候  ./a.out 1 2 

  1. 重現錯誤,如果程序需要輸入的話,在這個地方進行輸入,如果沒有就跳過,等待段錯誤出現
  2. 出現段錯誤後,輸入where或bt,查看棧結構。下圖中,出現段錯誤的地址在 linklinst.c:71. 分析錯誤的原因。

LINUX 下 GDB  調試小結---->基礎知識_#數據結構_02