【问题标题】:finding reason for EXC_BAD_ACCESS - in Xcode4寻找 EXC_BAD_ACCESS 的原因 - 在 Xcode4
【发布时间】:2011-07-25 12:39:27
【问题描述】:

我在与根本原因没有任何关系的地方收到EXC_BAD_ACCESS 错误。幸好找到原因是数组太小了,下面的语句[data getBytes:&tcpBuffer length:i];.

现在我的问题:我尝试了所有这些方法 - 但没有成功:

  1. 使用 NSZombiesEnabled 并没有改变调试窗口打印输出中的任何内容
  2. 当我将方案设置为调试并使用泄漏仪器时,它会启动泄漏仪器,但我看不到调试器。
  3. 当我在 iPhone Simulator 中运行应用程序并分别启动 Instruments 时,选择正在运行的应用程序作为目标(在 Instruments 的弹出菜单中)它会停止并显示类似“找不到目标”。

在这种情况下如何找到根本原因?请记住,最后,它甚至不是僵尸错误!这个错误信息真的比有用更令人困惑!

(幸运的是我只是想到了我的数组,但可以肯定的是,下次这会在其他地方困扰我)

【问题讨论】:

    标签: xcode4 memory-leaks instruments exc-bad-access


    【解决方案1】:

    您获得EXC_BAD_ACCESS 的位置很可能与根本原因无关。它可能是相关的,因此可以提供线索。但这并不确定。

    回答你的观点:

    1. NSZombiesEnabled 仅在您调用已释放对象的方法时才会生效。这可能不是您的EXC_BAD_ACCESS 的原因。

    2. 使用仪器独立于调试器。如果您在 Instruments 中进行分析,调试器将处于非活动状态。基本上,这是一个不同的工具。

    3. 这应该没问题。检查您的构建配置是否设置为“调试”而不是“发布”。

    这里有一个很好的链接,说明了导致EXC_BAD_ACCESS 的原因以及如何追查根本问题:

    Lou Franco's Understanding EXC_BAD_ACCESS

    【讨论】:

    • 非常感谢您的意见 - 与此同时,我很高兴 ARC 已经推出并有助于避免此类问题...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多