【问题标题】:EXC_BAD_ACCESS on CCLabelBMFont dealloc?CCLabelBMFont dealloc 上的 EXC_BAD_ACCESS?
【发布时间】:2011-10-20 07:58:58
【问题描述】:

CCLabelBMFont 上,我在其dealloc 方法上得到一个EXC_BAD_ACCESS。具体来说,行[configuration_ release];

我完全不明白。什么可能导致这种情况?我的 CCLabelBMFont 创建正常,显示正常,当它被释放时(当场景被替换时),砰,错误来了。

想法?

【问题讨论】:

    标签: objective-c cocos2d-iphone


    【解决方案1】:

    在调试器中设置NSZombieEnabledMallocStackLoggingguard malloc。然后,当您的应用程序崩溃时,在 gdb 控制台中输入以下内容:

    (gdb) info malloc-history 0x543216
    

    0x543216 替换为导致崩溃的对象的地址,您将获得更有用的堆栈跟踪,它应该可以帮助您查明代码中导致问题的确切行。

    See this article for more detailed instructions.

    【讨论】:

    • 谢谢。我启用了这些变量并保护 malloc。现在应用程序一开始就崩溃(启动画面)。它确实记录了一个警告:warning: Couldn't get real path for inserted library /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.1/Symbols/usr/lib/libgmalloc.dylib 是的,我目前正在为 4.1 开发。
    • 啊,原来它只适用于模拟器哈。无论如何,我现在做到了,并且得到了相当多的信息。您对此还有什么建议吗?因为我可能和以前一样困惑:不知道问题是什么:(
    • 您可以将控制台中的堆栈跟踪粘贴到问题中吗?
    • 好吧,我不完全确定实际发生了什么,但我怀疑:在我的场景的 dealloc 方法中,我放置了一些行,这些行释放了场景中的一些子对象。我认为出现错误是因为,当场景被释放时,它也会尝试释放其所有子节点。但是因为它试图发布我已经发布的东西,所以会弹出一个错误。
    • 不确定。这仍然让我感到困惑。我会进一步研究。不管怎样,谢谢你教我 Malloc 的东西。看起来很有用:)
    猜你喜欢
    • 2020-04-13
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    相关资源
    最近更新 更多