我有一個核心轉儲坐在盤,通過一個失敗的斷言和終止應用程序創建的。該應用程序在Linux/g ++上以調試模式編譯。我懷疑在堆棧頂部的堆棧框架中,我的this
對象已被delete
'd(我認爲this
不再是有效的ptr)。但是,重現這種中止可能需要幾天或更長的時間。在c + + gdb核心轉儲,我可以看到指針是否仍然分配?
有沒有辦法讓我從gdb(或其他地方)查詢新的/免費的實現,並驗證給定的內存地址是否是有效的分配內存?換句話說,我可以看到,如果我的this
仍被分配,或者它可能已經被deleted
「d?它必須是靜態的,因爲我只有一個核心轉儲,而不是正在運行的可執行文件。
在windows中,我會看看這個指向的內存並在調試器中尋找「feeefeee」。在調試模式下,在Windows中,將其寫入刪除的內存以幫助您進行調試。任何機會gcc/linux都有類似的功能? – 2009-05-22 16:20:42