一 gdb除錯前置條件
無論是c還是c++程式,在可以使用 gdb除錯程式之前,必須使用-g 選項編譯原始檔,這樣才能產生除錯資訊。c程式,可在makefile 中如下定義cflags 變數:
cflags = -g
二 部分命令的使用說明
step和next都是單步執行**,但是單步執行到函式時就有點不同了,step是會進入到函式裡面的第一行**;而如果該函式裡面沒有設定斷點,則next會跳過該函式,直接執行該函式後面的下一行**,如果函式裡面設定了斷點,則next會直接跳到該函式內的斷點處。
step:
single step the program; step into functions
next:
step but step over functions
顯示當前所有的斷點
info breakpoints show breakpoints
顯示當前的堆疊
bt print stack backtrace
結束當前函式的執行,返回到呼叫該函式的**處
finish finish current function's execution
直接回車,表示重複執行回車前執行的那個命令
c++類成員函式設定斷點
break 類名::函式名
用gdb除錯某執行程序
#gdb -p pid
(gdb) c
程式執行引數。
set args 可指定執行時引數。(如:set args --file test.txt)
show args 命令可以檢視設定好的執行引數。
gdb幫助
1 man gdb
對應的文件幫助:
2 執行gdb,然後輸入help檢視到所有命令相關的類名
a>help + 類名 可以得到此類的所有的command名
b>help + command名可以檢視到具體命令的詳細資訊
最全的幫助文件:
gdb除錯小結
二 資訊顯示 三 斷點 四 其他參考 當以gdb方式啟動gdb後,gdb會在path路徑和當前目錄中搜尋的原始檔。如要確認gdb是否讀到原始檔,可使用l或list命令,看看gdb是否能列出源 使用 gdb r或run命令執行程式。gdb p pid是程序id,可以通過 ps aux grep 程式名...
gdb用法小結
設定斷點 b reak filename func b reak filename line r un d elete breakpoints s tep n ext t break finish cdpwd btup down watch rwatch awatch info watchpoint...
gdb除錯小結
gdb 最基本的除錯命令.1以除錯程式test.cpp 為例 進入除錯環境 gdb test 2.b 12 在檔案的第12 行設定斷點。刪除斷點 info b 列出所有的斷點資訊 gdb info b num type disp enb address what 1 breakpoint keep ...