gdb是乙個由gnu開源組織公布的、unix/linux作業系統下的、基於命令列的、功能強大的程式除錯工具。對於一名linux下工作的c++程式猿,gdb是不可缺少的工具;
對c/c++程式的除錯。須要在編譯前就加上-g選項:
$g++ -g hello.cpp -o hello
除錯可執行檔案:
$gdb
program也就是你的執行檔案。一般在當前資料夾下。
除錯core檔案(core是程式非法執行後core dump後產生的檔案):
$gdb $gdb program core.11127
除錯服務程式:
$gdb $gdb hello 11127
假設你的程式是乙個服務程式,那麼你能夠指定這個服務程式執行時的程序id。
gdb會自己主動attach上去,並除錯他。program應該在path環境變數中搜尋得到。
啟動gdb後,進入到互動模式,通過下面命令完畢對程式的除錯。注意高頻使用的命令一般都會有縮寫,熟練使用這些縮寫命令能提高除錯的效率;
註解互動模式下直接回車的作用是反覆上一指令。對於單步除錯很方便。
cgdb能夠看作gdb的介面增強版,用來替代gdb的 gdb -tui。cgdb主要功能是在除錯時進行**的同步顯示,這無疑新增了除錯的方便性,提高了除錯效率。介面類似vi,符合unix/linux下開發者習慣;假設熟悉gdb和vi,差點兒能夠馬上使用cgdb。
除錯利器 PHP debug backtrace
可能大家都知道,php中有乙個函式叫debug backtrace,它可以回溯跟蹤函式的呼叫資訊,可以說是乙個除錯利器。好,來複習一下。01one 02 03functionone 06 07functiontwo 10 11functionthree 14 15 16輸出 17array 18 1...
gdb 除錯 vs除錯
一 先要生成二進位制檔案 g g 1.cpp o 1.out g引數不要省,不然 gdb l 引數用不了 二 引數 設定斷點 設定 函式斷點break func 在某行設定斷點break 7 檢視斷點資訊 info break 刪除斷點 d 刪除所有斷點 d 3 刪除第三個 執行 r 下一步 n 逐...
GDB除錯命令以及GDB除錯段錯誤
一 gdb的除錯命令。c語言是 cc g tst.c o tst c 是g g o 生成的檔案 file.cpp c 除錯程式命令 gdb file 啟動,羅列 行數ist 1,break 行數 info break,run r 除錯執行,step s 單步除錯,檢視變數 print p 變數名,檢...