gdb在檔案行號上打斷點

2021-08-21 12:11:46 字數 1014 閱讀 8141

**:100個gdb小技巧

/* a/file.c */

void print_a (void)

/* b/file.c */

void print_b (void)

/* main.c */

extern void print_a(void);

extern void print_b(void);

int main(void)

這個比較簡單,如果要在當前檔案中的某一行打斷點,直接b linenum即可,例如:+

(gdb) b 7
也可以顯式指定檔案,b file:linenum例如:+

(gdb) b file.c:6

breakpoint 1 at 0x40053b: file.c:6. (2 locations)

(gdb) i breakpoints

num type disp enb address what

1 breakpoint keep y 1.1 y 0x000000000040053b in print_a at a/file.c:6

1.2 y 0x000000000040054b in print_b at b/file.c:6

可以看出,gdb會對所有匹配的檔案設定斷點。你可以通過指定(部分)路徑,來區分相同的檔名:+

(gdb) b a/file.c:6
注意:通過行號進行設定斷點的乙個弊端是,如果你更改了源程式,那麼之前設定的斷點就可能不是你想要的了。+

詳情參見gdb手冊+

xmj

關於「gdb無法打斷點」的分析與解決辦法

萌新救火接手了乙個比較大的框架,要從開發機把編譯好的bin so,以及data放到測試機部署並發布。gdb對已經啟動的程序除錯 首先,要在測試機上跑起來編寫的http和tcp服務,與平時不一樣的是,這裡gdb是對於系統以及跑起來的程序直接除錯,採用 ps ef grep 來查對應的pid,用 gdb...

在Ubuntu上的GDB除錯

gdb gnu debugger,是gnu工程為gnu作業系統開發的 偵錯程式,但它的使用不侷限於gnu作業系統,gdb可以執行 在unix linux甚至microsoft windows。gdb可以除錯c c objective c pascal ada等語言編 寫的程式 被除錯的程式可以跟gd...

在linux上用gdb除錯的小技巧

偶然發現竟然有這個玩法。首先一開始,terminal可顯示的行數實在有限,一些迴圈次數較多的需要快進的程式直接用終端是在不方便。因此我就想,將gdb的結果輸出到檔案會發生什麼呢。然後我就試了一下 justin justin music ics lab lab2 gdb bomb gdbbomb.lo...