2013-03-07 37 views
0

我有一個指針數組,包含接口細節。 例如如何使用gdb免費觀看固定內存,因爲損壞

tIfInfoStruct  *gapIfTable[16]; 

存儲器已被分配給所述指針而界面創建。 例如

gapIfTable[14] = 0x39cc345. 

操作的一些序列後,gapIfTable[14]值變爲NULL(0x0)。我想觀看,該節目的哪一部分正在釋放內存。 我是否可以使用能夠

gdb> watch *0x39cc345 

我想上GDB停止我的程序時,上面的存儲器地址變爲NULL,這樣我就可以得到回溯追蹤在gdb找到罪魁禍首跟蹤gapIfTable[14]。我正在運行一個多線程程序。

請更正如果我的理解錯誤。 如果我錯了,請幫我解決一些問題。

+0

手錶應該工作--gdb將使用一個調試寄存器是可能的,這將做你所需要的。您也可以嘗試運行Valgrind,它將檢測超出分配緩衝區大小的寫入。 – mkfs 2013-03-08 18:20:48

回答

0

GDB>觀看* 0x39cc345

這在位置0x39cc345手錶存儲器,並且不存儲器在成爲NULL位置&gapIfTable[14]

所以你可能想用watch *(gapIfTable+14)來代替。