【问题标题】:Stopping at breakpoints causing EXC_BAD_ACCESS在导致 EXC_BAD_ACCESS 的断点处停止
【发布时间】:2012-01-07 22:28:28
【问题描述】:

我的应用程序运行良好且符合预期,但由于某种原因,当我放置断点时,单步执行/结束/恢复会导致程序因 EXC_BAD_ACCESS 而崩溃。如果我删除/禁用断点,则不会发生这种情况。

有什么建议吗?

【问题讨论】:

  • 我没有使用线程。代码(我猜)是无关紧要的,因为它在我放置断点的任何地方都会崩溃,无论如何。正如我所说,如果没有断点就不会崩溃?!
  • 您可能想尝试清理和重建。有时 Xcode 会感到困惑并引用错误的表等。
  • 多次尝试清理和重建无济于事:(
  • 我在升级到 Xcode 4.2.1 后也开始遇到这个问题。代码在断点之前可以完美运行。 (你不是唯一的)

标签: ios xcode debugging exc-bad-access breakpoints


【解决方案1】:

据我所知,LLDB 在 Xcode 4.2 和 4.2.1 中似乎被破坏了。在“编辑方案”设置中切换到 GDB。

切换到 GDB 后,断点按预期工作。

【讨论】:

  • 我使用的是 LLDB,只要我有有效的表达式,我的所有断点都能正常工作。一旦我定义了一个无效的(CCLayer 中的 super.position),xCode 似乎就会关闭或崩溃。它甚至不允许我删除无效的表达式,因为它不会在那里中断。当我切换到 GDB 时,我可以看到无效的表达式并将其删除。然后我切换回 LLDB,问题就消失了。感谢您的帮助。
  • 正确的答案是更新到 XCODE 5.0.2,正如下面另一位评论者指出的那样。对不起大喊大叫。 =)
  • 这个选项在哪里?
【解决方案2】:

对于任何可能在 Xcode 5.0.1 和 Mavericks 中遇到相同情况的人: 尝试删除所有方案并再次自动创建它们 - 这为我解决了问题。

【讨论】:

  • 重新创建方案对我不起作用。我确实注意到它发生在我的 iOS 6 设备(iPhone 5、iPad 2)上,但不是我的 iOS 7 设备(iPhone 4s)。
  • 很奇怪,它发生在我的 iOS 6 iPad 2 上。尝试在重新创建方案后删除和添加断点。
  • 它现在可以工作,但我不知道为什么。我尝试了很多事情......从我的设备中删除应用程序,重新启动它,重新启动 Mac 等。然后我遇到了另一个不相关的问题(据我所知),Xcode 永远不会完成构建。恐怕我不记得我是如何找到它的,但事实证明我的钥匙串被 46,000 个证书和 93,000 个名为 com.apple.ubiquity.peer-uuid 的密钥弄乱了。仅仅打开钥匙扣就花了将近一个小时!这是帮助我解决它的页面的链接:discussions.apple.com/thread/3396579?start=0&tstart=0 现在,这两个问题都已修复。去图!
  • 啊,找到了导致我遇到钥匙串问题的 SO 问题:stackoverflow.com/questions/10404560/…
  • 苹果发布5.0.2,bug已修复。
【解决方案3】:

你在哪里使用 lldb 而不是 gdb ?我用 Xcode 4.2.1 和 lldb 系统地得到了这个。切换回 gdb (booooo) 即可解决问题。

【讨论】:

    【解决方案4】:

    我正在使用 Xcode 4.3.2,Xcode 自动将调试更新到 LLDB(弹出对话框,我确认)。这真是一场噩梦,当我踏入任何函数调用 8-9 (共 10 次)时,它就会崩溃。

    现在改回 GDB 似乎更好!

    【讨论】:

      【解决方案5】:

      这是 XCode 5.0.1 和 Mavericks 的错误。 Apple 发布 5.0.2,bug 已修复!

      【讨论】:

        【解决方案6】:

        EXC_BAD_ACCESS 表示您在某处存在内存问题 - 很可能当您期望它仍然存在时(可能是 autorelease 的结果)正在释放某些东西。运行static analyzer 找到它。我想您会看到崩溃,因为当您加载断点时调试器会积极占用内存,因此会在其他地方标记问题。

        【讨论】:

          【解决方案7】:

          不管怎样,我也遇到了同样的问题。我可以获取我知道是正确的代码,如果我使用 lldb 进入它,它会在到达断点后崩溃。当我尝试打印任何本地人时,我也会得到这样的输出

          (lldb) p self
          error: use of undeclared identifier 'self'
          error: 1 errors parsing expression
          

          看起来 lldb 在 Xcode 4.2.1 中被破坏了。我唯一的建议是现在切换回 gdb。

          【讨论】:

            猜你喜欢
            • 2021-12-07
            • 1970-01-01
            • 1970-01-01
            • 2015-09-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-09-22
            • 2013-07-20
            相关资源
            最近更新 更多