【问题标题】:EXC_BAD_ACCESS ProblemEXC_BAD_ACCESS 问题
【发布时间】:2011-11-10 18:52:15
【问题描述】:

我遇到了一个 EXC_BAD_ACCESS 错误,并且一直在绞尽脑汁试图找出解决方案。我相信我知道这个问题,但我无法缩小它发生的范围,并且调试日志对我没有帮助。我在下面嵌入了崩溃日志。如果有人可以帮助我弄清楚如何追踪事情,我将非常感激!我已经打开了 NSZombieEnabled,但这并没有给我任何额外的信息。

【问题讨论】:

  • Valgrind 几乎完全是一个“不得已而为之的工具”。在此之前有更容易/明显的调查途径。符号化,首先是在 Holler 代码库中崩溃的方法/函数。
  • 这张截图只能猜。为什么不显示错误发生在哪一行?
  • 看起来你可以很容易地让这个应用崩溃。尝试在连接设备的情况下从 xcode 构建和运行,然后使其崩溃,然后在 (gdb) 提示符(调试器控制台)处输入 bt。你应该得到一个回溯,告诉你更多。

标签: objective-c ios xcode cocoa-touch xcode4


【解决方案1】:
  • 文字比屏幕截图好,但我想我可以阅读那个屏幕。

  • 崩溃发生在您的代码中的 0x1000。你会想把它象征化:Symbolicating iPhone App Crash Reports

  • libobjc 中的帧很可能是因为您将虚假指针传递给 objc_msgSend();看起来很像 objc 试图指向垃圾值的指针的东西是如果它是一个对象。

  • 这不是过度释放问题;可能只是一个废弃的指针/废弃的内存。


您可能可以反汇编二进制文件并找出列出的地址是什么符号。或者非常接近的东西。 otool 是你的朋友。 nm 也可能是。但是...正确的符号要好得多。

【讨论】:

  • Symbolicating iPhone App Crash 问题的问题是我已经在 Organizer 中查看它,但它没有提供任何信息。关于如何做到这一点的任何想法?
  • 看来我需要升级到 XCode 4.1 才能使符号化正常工作。现在我先升级到最新的 OSX :(
【解决方案2】:

在调试设置 NZombieEnabled 时。它会帮助你寻找探针。至少它为什么会崩溃(在哪个对象上)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 2011-09-03
    相关资源
    最近更新 更多