用gdb除錯C 程式時列印變數的值

2021-04-12 19:43:24 字數 657 閱讀 2280

如果這個值是本地變數,那麼沒有任何的問題。gud-tooltip-mode也能正確顯示。

不過如果是類裡的成員,有的時候就麻煩了。

p *this: 列印出當前類裡所有的成員的值

p this->member: 列印出當前類裡的某個成員的值

ptype this: 列印出當前類裡所有的成員(原型)

whatis this: 列印出當前類的型別

如果set print object on的話,whatis this可以顯示出當前類的真正型別,也就是衍生類的型別。

如果都能這樣,那就太爽了。

可是有時候不是這樣。不過我還沒弄明白為什麼會導致這種區別。

不過有個補救的方法。就是cast。

但是語法上有個地方要注意:

you must type

(gdb) print ('foo::bar') x   instead of  (gdb) print (foo::bar) x

or(gdb) print ('foo::bar' *) y instead of  (gdb) print (foo::bar *) y

所以下面這樣是可以的

p (('namespace::class') *this)->a.b.c

p ('namespace::class') *this  

用gdb除錯C與C 程式

1.gdb簡介 1 介紹 gdb是linux下乙個gnu除錯程式,是用來除錯c與c 程式的強力偵錯程式。能夠讓使用者在程式執行時觀察程式的內部結構和記憶體的使用情況。2 功能 按照自定義的方式啟動執行需要除錯的程式。可以使用指定位置和條件表示式的方式來設定斷點。程式暫停時的值的監視。動態改變程式的執...

用GDB除錯程式

用gdb除錯程式 gdb概述 gdb是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc bcb等ide的除錯,但如果你是在unix平台下做軟體,你會發現gdb這個除錯工具有比vc bcb的圖形化偵錯程式更強大的功能。所謂 寸有所長,尺有所短 就是這...

用GDB除錯程式

七 設定顯示選項 gdb中關於顯示的選項比較多,這裡我只例舉大多數常用的選項。set print address set print address on 開啟位址輸出,當程式顯示函式資訊時,gdb會顯出函式的引數位址。系統預設為開啟的,如 gdb f 0 set quotes lq 0x34c78...