SIGABRT Xcode 4.2 issue

3
自从我将xcode从3.1升级到xcode 4.2之后,当我调试一个程序并且由于某些原因出现SIGABRT错误(即调用不存在的对象的方法)时,Xcode会在程序的主函数中显示错误,而不是生成SIGABRT的行。也许我在调试器或xcode中缺少某种配置?有什么建议吗?
3个回答

2
我很长一段时间都有同样的问题,现在我刚找到了解决方案。不知道这是否是最好的方法,但至少对我有效。基本上,您应该创建一个全局断点(全局意味着适用于您所有的项目)。
请查看此博客文章有关如何创建符号断点的教程。我自己是通过以下方式创建异常断点(它也会捕获objc_exception_throw):

(for all exceptions)

然后将其移动到“用户”断点空间:

enter image description here


0

确保您使用的方案已启用断点。您可以通过点击方案选择器旁边的按钮来打开它们。

http://bit.ly/zuTnpF


嗨,Raheel。它们确实已经打开了。我一直在阅读相关资料,似乎这是Xcode 4.2中的某种问题。 - Ignacio Oroná

0

对我来说,起作用的是我在这里找到的一些与创建NSZombies有关的东西。

我至少会摘录一下要点:

  1. 在Xcode 4中打开你的项目
  2. 可以在方案编辑器中设置环境变量(在菜单栏中找到Product->Edit scheme…):
  3. 将变量命名为NSZombieEnabled,并将其值设置为YES。
  4. 以调试模式运行应用程序。你可能会得到一个消息已发送到释放实例的消息,调试器会停留在错误的那一行。这个信息会导致问题的产生。
  5. 准备就绪后,通过将YES更改为NO来禁用NSZombieEnabled。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接