gdb幾種設定斷點的方式

2022-03-24 02:22:44 字數 788 閱讀 5823

gdb幾種設定斷點的方式

方式1、根據函式名,查詢符號(symbol)設定斷電

此種方式最為簡單,閱讀源**,了解函式如何呼叫,在需要暫停執行的函式入口進行斷點設定。但並不是所有函式,任何時候都能設定斷點的。比如優化後的靜態函式,inline函式。在特定的情況下,通過函式名進行斷點設定便不可為,而又需要檢視執行時該函式的運**況,這時就需要使用第二種方式。

例子:b func_name

方式2、根據**行位置設定斷點

當無法通過方式1進行設定斷點,而又明確知道,程式執行到源**檔案中某個位置需要中斷,則可通過在gdb中指定檔案及**位置進行斷點設定。通過方式1和2,能解決絕大部分的跟蹤問題,但是,在執行執行中,我們可能會碰到通過函式指標進行函式呼叫的情況,此時只知道函式指標的位址,就無法通過函式名或者**行數進行

例子:b /src/codefile.cc:81。gdb將在執行到原始碼檔案/src/codefile.cc的第81行中斷

方式3、根據執行時的位址設定斷點

此時有兩種方式,一是通過直接指定位址進行,進行斷點設定。二是通過print命令獲得相關資訊

例子1:b *0x5859c0。"*"號是必須加在位址前的,0x5859c0為函式指標的位址

例子2:展示變數內容

(gdb) p *thread_scheduler

$4 =

在列印thread_scheduler變數的內容時,儲存函式指標的變數add_connection的內容被列印出來,保活函式的指標和函式的名字,通過指標可使用b *0x5859c0進行斷點設定;通過函式名可使用方式1進行斷點設定

使用gdb新增斷點的幾種方式

目錄 1.普通斷點 2.條件斷點 3.資料斷點 4.函式斷點 5.刪除斷點 6.監視 7.儲存斷點 根據 行數設定斷點是最常見的一種方式,在debug程式執行前就可以進行斷點的配置。如 gdb b src main.cpp 127當程式執行到main.cpp檔案的第127行時就會出發斷點。顧名思義,...

使用gdb新增斷點的幾種方式

根據 行數設定斷點是最常見的一種方式,在debug程式執行前就可以進行斷點的配置。如 gdb b src main.cpp 127當程式執行到main.cpp檔案的第127行時就會出發斷點。顧名思義,這種斷點是當滿足一定條件時才會觸發,比較適合進行異常排查。設定方式 gdb break line o...

GDB 斷點設定

啟動gdb後,首先就是要設定斷點,程式中斷後才能除錯。在gdb中,斷點通常有三種形式 斷點 breakpoint 在 的指定位置中斷,這個是我們用得最多的一種。設定斷點的命令是break,它通常有如下方式 可以通過info breakpoints n 命令檢視當前斷點資訊。此外,還有如下幾個配套的常...