我有大量代码,它抛出以下错误/异常。
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]
有谁知道我如何尝试进一步调试它? 我不确定我的代码中是什么导致了这个问题。
启用 malloc 堆栈日志记录(可以在 Xcode 中完成 - 僵尸下方的几个复选框)。
然后运行/测试程序 - 重现问题。现在,使用 malloc_history
实用程序获取有关 malloc 在消息中标记的分配的详细信息。