在断点处停止导致EXC_BAD_ACCESS

时间:2011-11-28 13:10:17

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

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

有什么建议吗?

7 个答案:

答案 0 :(得分:18)

从我所看到的情况来看,LLDB似乎在Xcode 4.2和4.2.1中被打破了。在“编辑方案”设置中切换到GDB。

切换到GDB后,断点的工作正常。

Edit Scheme Dialog

答案 1 :(得分:12)

对于任何可能在Xcode 5.0.1和Mavericks中遇到同样问题的人: 尝试删除所有方案并再次自动创建 - 为我修复它。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

现在改回GDB似乎更好了!

答案 4 :(得分:1)

这是XCode 5.0.1和Mavericks的一个错误。 Apple发布5.0.2并修复了错误!

答案 5 :(得分:0)

EXC_BAD_ACCESS意味着你在某个地方遇到了内存问题 - 当你预期它仍然存在时(很可能是autorelease的结果)很可能会释放某些东西。运行static analyzer进行查找。我想你会看到崩溃,因为当你加载断点并因此在其他地方标记问题时,调试器会积极地占用内存。

答案 6 :(得分:0)

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

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

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