gdb使用小結

2021-06-17 00:50:12 字數 1024 閱讀 6945

一 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 ...