2012-08-15 97 views
0

我有大量的代碼,它會引發以下錯誤/異常。Xcode的malloc錯誤調試

malloc: *** error for object 0xce52964: incorrect checksum for freed object - object was probably modified after being freed. 
*** set a breakpoint in malloc_error_break to debug 

如果我運行它所有的內存管理的東西,如NSZombies等啓用,那麼它的功能完全正常。

我加malloc_error_break類型的Symbolic Exception Breakpoint,並停止在隨機線(一NSLog(@"part6");中,我用它來幫助經由NSLog把它分成部分調試我的代碼)。

我也試着輸入到調試器中,這就是我得到:

po 0xce52964 
(int) $3 = 216344932 [no Objective-C description available] 

有誰知道我可以嘗試進一步調試呢?我不確定我的代碼中是什麼導致了這個問題。

回答

1

啓用malloc堆棧日誌記錄(可以在Xcode中完成 - 殭屍下方的幾個複選框)。

然後運行/測試您的程序 - 重現問題。現在使用malloc_history util獲取有關malloc在消息中標記的分配的更多信息。

+0

我打開它,它說它將它寫入/ tmp /文件夾。我如何使用「malloc_history」? – MrHappyAsthma 2012-08-15 17:20:16

+0

https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/malloc_history.1.html – justin 2012-08-15 17:28:09