获取错误:对象0xc79e430的malloc:***错误:double free ***在malloc_error_break中设置断点以进行调试

时间:2011-06-14 19:47:50

标签: iphone json

我的iPhone应用程序出现此错误。

错误:DemoApp(1874,0xb024f000)malloc: *对象0xc79e430的错误:双倍免费 * 在malloc_error_break中设置断点以进行调试

在该视图中我使用JSON代码并在解析相应显示的数据之后但几分钟之后应用程序崩溃了。谁能帮我。谢谢你的

2 个答案:

答案 0 :(得分:4)

对于任何EXC_BAD_ACCESS或双重免费错误,您通常会尝试向已发布的对象发送消息。追踪这些内容的最佳方式是使用NSZombieEnabled

这可以通过永远不会实际释放一个对象,但将其包装为“僵尸”并在其中设置一个标志,表示它通常会被释放。这样,如果您再次尝试访问它,它仍然知道在发生错误之前它是什么,并且通过这些信息,您通常可以回溯以查看问题所在。

当调试器有时会抓取任何有用的信息时,它特别有助于后台线程。

非常重要但是,您需要100%确保这只是在您的调试代码而不是您的分发代码中。因为什么都没有发布,你的应用程序将泄漏,泄漏和泄漏。为了提醒我这样做,我把这个日志放在我的appdelegate:

if(getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled"))
  NSLog(@"NSZombieEnabled/NSAutoreleaseFreedObjectCheckEnabled enabled!");

答案 1 :(得分:0)

这只是一个内存释放问题。我错误地释放了内存之前和之后我试图访问该变量的值,这就是我收到错误的原因。感谢