0

我有大量代码,它会引发以下错误/异常。

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 等)的情况下运行它,那么它运行得非常好。

我添加了一个Symbolic Exception Breakpointtype malloc_error_break,它停在一个随机行上(NSLog(@"part6");我用它来帮助调试我的代码,通过 将它分成几个部分NSLog)。

我也试过输入调试器,这就是我得到的:

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

有谁知道我如何尝试进一步调试这个?我不确定我的代码中是什么导致了这个问题。

4

1 回答 1

1

启用 malloc 堆栈日志记录(可以在 Xcode 中完成 - 僵尸下方的几个复选框)。

然后运行/测试您的程序 - 重现问题。现在使用malloc_historyutil 获取有关 malloc 在消息中标记的分配的更多信息。

于 2012-08-15T16:56:25.563 回答