可能重复:
我的游戏有时会因为这样的信息而崩溃:
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检测进行了测试。它说在执行过程中正在检查僵尸。
但是这个应用程序崩溃了,什么也没抓到。
为什么僵尸不会抓到它?
谢谢。
发布于 2011-08-27 15:15:10
建议不是启用僵尸,僵尸是客观的-只有C和malloc、realloc和free是分配内存的C方式,僵尸工具不会捕获这些错误。在malloc_error_break中设置一个断点,并查看堆栈跟踪以解决错误。
发布于 2011-08-27 15:24:29
在不太花哨的情况下,您可以删除所有free调用,并查看它是否解决了问题。如果您的项目不是很大的规模,这可能比您将使用的任何“专业工具”更快。如果它解决了这个问题,只需一个接一个地插入free调用,答案就会变得显而易见。
如果您使用cocos2d,只需删除所有的“免费”调用。C内存分配容易出错。
https://stackoverflow.com/questions/7215377
复制相似问题