linux下gdb偵錯程式使用學習 02

2021-07-10 11:18:42 字數 1125 閱讀 9761

雖然說這三類point的功能是不一樣的,但它們的用法卻極為相似。

因此,本文將以斷breakpoint為例,進行詳細的介紹,關於watchpoint和catchpoint的介紹就相對比較粗略,如果能夠理解breakpoint的部分,那麼便可以觸類旁通,學會watchpoint和catchpoint的用法。

breakpoint: 作用是讓程式執行到某個特定的地方停止執行

info breakpoints [n]:

pending breakpoints:

breakpoints的刪除:

breakpoints的禁用、啟用:

指定程式在某個breakpoint處停下來後執行一串命令, 格式:

commands [bnum]

… command-list …

end

用途:指定程式在第bnum個breakpoint處停下來後,執行由command-list指定的命令串,如果沒有指定bnum,則對最後乙個breakpoint生效

- 取消命令列表:

commands [bnum]

end例子:

break foo if x>0

commands silent printf 「x is %d\n」,x

continue end

上面的例子含義:當x>0時,在foo函式處停下來,然後列印出x的值,然後繼續執行程式

watchpoint: 它的作用是讓程式在某個表示式的值發生變化的時候停止執行,達到『監視』該表示式的目的

info watchpoints:

watchpoints和breakpoints很相像,都有enable/disabe/delete等操作,使用方法也與breakpoints的類似

catchpoint: 的作用是讓程式在發生某種事件的時候停止執行,比如c++中發生異常事件,載入動態庫事件

tcatch event: 設定只停一次的catchpoint,第一次生效後,該catchpoint被自動刪除

catchpoints和breakpoints很相像,都有enable/disabe/delete等操作,使用方法也與breakpoints的類似

linux下gdb偵錯程式使用學習 01

gdb單獨啟動,檢視gdb的相關選項 直接通過shell命令視窗執行如下命令 進入gdb除錯介面 純文字介面 2.gdb幫助說明 進入gdb後執行命令 help 即可看到gdb的相關命令,gdb是通過對命令列進行分類 class 來羅列 通過上面的圖示,可以看到gdb把所有的幫助命令分為如下幾類 a...

linux下gdb偵錯程式使用學習 03

attach process id detach 附加 分離程序 kill 多執行緒程式除錯相關 set follow fork mode mode 設定gdb行為,mode為parent時,與預設情況一樣 mode為child時,fork vfork之後,gdb進入子程序除錯,與父程序不再相關 s...

GDB 偵錯程式使用手冊

若有一檔案為test.c,在儲存退出後首先使用gcc對test.c進行編譯,注意一定要加上選項 g 這樣編譯出的可執行 中才包含除錯資訊,否則之後gdb無法載入該可執行檔案。gcc g test.c o test 注意 gdb除錯的是可執行檔案,而不是 c 的源 所以必須先通過gcc編譯生成可執行檔...