2011-11-28 71 views
13

我的应用程序运行良好,并且与预期的一样,但由于某些原因,当我放置断点时,进入/ over/resume会导致程序崩溃并伴随EXC_BAD_ACCESS。这不会发生,如果我删除/禁用断点。在断点处停止导致EXC_BAD_ACCESS

有什么建议吗?

+0

你能发表一些代码吗? – FreeAsInBeer

+0

你使用的线程? –

+2

我没有使用线程。代码是(我猜)是无关的,因为它无论在哪里崩溃我放置一个断点。正如我所说,如果没有断点,没有崩溃?! – Dann

回答

18

从我可以看到,LLDB似乎在Xcode 4.2和4.2.1中被破坏。在“编辑方案”设置中切换到GDB。

切换到GDB后,断点的工作方式与预期一致。

Edit Scheme Dialog

+1

我使用的是LLDB,只要我有有效的表达式,我所有的断点都能正常工作,只要我定义了一个无效的断点(CCLayer中的super.position),xCode似乎关闭或崩溃,它甚至不允许我删除无效表达式,因为它不会在那里破坏。当我转换到GDB时,我可以看到无效表达式并将其删除。然后我切换回LLDB并解决问题 –

+0

这帮了我 –

+0

正确的答案是更新到XCODE 5.0.2作为另一位评论者指出下面。对不起,对Yellin G。=) – RanLearns

0

EXC_BAD_ACCESS意味着你在某个地方有内存问题 - 当你期望它仍然在附近时(很可能是autorelease的结果),很可能会发布某些内容。运行static analyzer找到它。我想你会看到崩溃,因为调试器在加载断点时积极占用内存,因此在其他地方标记问题。

1

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

0

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

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

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

1

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

改回GDB好像现在好多了!

12

对于任何可能与Xcode 5.0.1和小牛队经历相同事情的人: 尝试删除所有方案并再次自动创建它们 - 为我修复它。

+4

重新创建这些方案对我无效。我注意到它发生在我的iOS 6设备(iPhone 5,iPad 2)上,但不是我的iOS 7设备(iPhone 4s)。 – Symmetric

+0

奇怪的是,它发生在我的iOS 6 iPad 2上。尝试在重新创建方案后删除并添加断点。 – Andrew

+0

它现在正在工作,但我不知道为什么。我尝试了很多东西......从设备上删除应用程序,重新启动它,重新启动Mac等等。然后我遇到了另一个无关联的问题(据我所知),Xcode永远不会完成构建。我不记得我是如何找到它的,但事实证明我的钥匙串已经与46,000个证书和93,000个名为com.apple.ubiquity.peer-uuid的密钥搞砸了。花了近一个小时才打开钥匙链!以下是帮助我解决问题的页面的链接:https://discussions.apple.com/thread/3396579?start=0&tstart=0现在,这两个问题都得到解决。去搞清楚! – Symmetric

1

这是XCode 5.0.1和Mavericks的错误。苹果发布了5.0.2,该错误已修复!