我有一個非常老的程序,崩潰了。在調試使用WinDbg崩潰,我已經安裝的驗屍調試器,我注意到一個寄存器設置爲一個奇怪的值:寄存器和調用參數的奇怪值
rdx=00000000
deadface
線程的堆棧跟蹤導致崩潰(訪問衝突)包含了一些可疑的價值,以及:
objc_1!objc_msg_lookup+0x29: 00000000 6784a4c5 488b4a38 mov rcx,qword ptr [rdx+38h] ds:00000000
dead
fb06=????????????????
我已從!analyze -v
命令的輸出中包含的寄存器列表中獲得第一個值。第二個是通過列出失敗線程堆棧的命令產生的(~9k
)。
Windbg試圖通過將這些值放入註冊表和堆棧轉儲來告訴我一些事情,還是我只是一些舊的測試代碼或惡作劇的受害者(或者它只是一個重要的值)?
程序是用obj-c編寫的,運行的是舊版本的GNUstep和obj-c運行時。
有一個內存模式'deadbeef'代表'heapFree()'釋放的內存' – 2014-09-26 13:30:40
謝謝,很好的提示。剛剛發現'deadface'是GNUstep用於類似目的的一種模式。 – 2014-09-26 14:32:29