0

可能重复:
Xcode malloc 错误

由于此消息,我的游戏有时会崩溃:

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

因此,按照建议,我在仪器中运行了分配工具以尝试查找泄漏并勾选启用 NSZombie 检测。它说它在执行期间检查僵尸。

但是应用程序崩溃了,什么都没有被捕获。

为什么僵尸不会抓住它?

谢谢。

4

2 回答 2

2

建议不要启用僵尸,僵尸只是 Objective-C 和mallocrealloc并且free是 C 分配内存的方式,僵尸工具不会捕获这些错误。设置断点malloc_error_break并查看堆栈跟踪以解决错误。

于 2011-08-27T15:15:10.043 回答
0

无需太花哨,您可以删除所有free呼叫并查看它是否解决了问题。如果您的项目规模不是很大,这可能比您将使用的任何“专业工具”更快。如果它解决了问题,只需一个接一个地插入free呼叫,答案就会变得明显。

如果您使用 cocos2d,只需删除所有那些“免费”调用。C 内存分配很容易出错。

于 2011-08-27T15:24:29.223 回答