GDB
Linux軟件開發人員,必須會的4個工具
Gcc編譯器,把源文件轉換為可執行程序
Vim linux下,文本編輯器
Gdb 調試器,檢查程序的邏輯錯誤gnu debugger
Makefile 工程管理工具
GDB常用命令
調試的步驟
GDB一般調試
- 編譯自己代碼的時候選擇-g(給a.out加入調試信息):
- gcc -g 1.c
- 啓動調試器:
- gdb ./a.out
- 設置斷點(希望程序運行起來後,暫停在某一個位置):
- 方式一:b 16 ->break 設置斷點在main函數所在的第16行
- 方式二:b 1.c:36 ->多文件中,斷點設置1.c的第36行
- 方式三:b fun ->斷點設置在fun函數,只要fun被調用就會暫停
- 讓程序運行起來
- r -> run 運行程序
- r 1 2 -> run 運行程序。如果你的程序需要命令行參數時候 ./a.out 1 2
- 這個時候,程序就應該暫停在 斷點的地址
- p 變量 ->print 查看變量
- p 指針 ->
- p*指針 ->
- 程序向下運行一步,繼續找錯誤
- 當前代碼中,是否有函數調用
- n ->next 函數就執行完
- s ->step into 進入函數體一步運行,只進入自定義函數
- 5-6步的循環,直到找到錯誤
段錯誤調試
- 編譯自己代碼的時候選擇-g(給a.out加入調試信息):
gcc -g 1.c
- 啓動調試器:
gdb ./a.out
- 讓程序運行起來,因為不知道程序那個地方出現段錯,不需要下斷點
r -> run 運行程序
r 1 2 -> run 運行程序。如果你的程序需要命令行參數時候 ./a.out 1 2
- 重現錯誤,如果程序需要輸入的話,在這個地方進行輸入,如果沒有就跳過,等待段錯誤出現
- 出現段錯誤後,輸入where或bt,查看棧結構。下圖中,出現段錯誤的地址在 linklinst.c:71. 分析錯誤的原因。
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。