2013-04-25 17 views
5

我正在使用gdb調試現有的C庫7.4
我試圖檢查一個變量,不幸的是,它被聲明爲具有相同的名稱作爲它的類型:如何在gdb中檢查與其類型名稱相同的變量

extern const enum rtx_class rtx_class[NUM_RTX_CODE]; 

現在我只是無法找到一種方法來檢查這個變量。 p rtx_class返回嘗試使用類型名稱作爲表達式,與p &rtx_classp rtx_class[0]相同。
但是,info var rtx_class按預期工作並返回const rtx_class rtx_class [145]。

有什麼想法?

+1

對於我來說,罰款枚舉(GDB 7.4 ),但是對於結構來說,這已經是al ong時間:http://sourceware.org/bugzilla/show_bug.cgi?id=7737 – dbrank0 2013-04-25 11:44:46

回答

5

試試這個解決方法。爲了您的二進制這樣做:

納米的可執行| grep的rtx_class

你應該得到的地址(讓我們說這是0xabcdef,假設這是全局變量 然後在gdb做這樣的事情:

。打印*(rtx_class *)(0xabcdef +的sizeof(rtx_class)* N)

這應該打印rtx_class [N],或者至少它在我的簡單的測試用例一樣。

+0

很好的解決方法。適用於我。 – 2013-04-25 12:40:12

相關問題