2011-11-30 34 views
28

过去,随着旧的Xcode 3的出现,每当我发生崩溃时,Xcode都停在显示崩溃的违规行。这是好时光,很好调试。Xcode总是在发生崩溃后在main.m停止

现在和Xcode 4.2,每一个应用程序崩溃时,它停在main.m文件在该行

int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate"); 

,让不知道是什么原因造成的崩溃。这个问题可以在任何类中,但当它崩溃时,它总是会停在main.m上。

有没有办法让它再次正常工作?

感谢

注:我也问过这之前,SO,但鉴于当时的解决方案被证明是不令人满意的,问题仍然存在。

+0

以供将来参考,不再次发布了同样的问题。编辑您的原始问题以提供新信息并将其返回到首页。 –

+0

我要求删除旧的。 – SpaceDog

回答

42

他们改变行为,请按照this tutorial to break on all exceptions

编辑:(链接可能腐烂,所以我会在这里复制信息)

一个在Xcode 4.2隐藏的宝石是“异常断点“功能。一旦启用它,您的调试生活将变得更加容易,因为无论何时在应用程序中引发异常,Xcode都会调出导致异常发生的代码行。如果你的调用堆栈窗口是空的(这在我使用iOS应用程序时有时会发生),这特别有用。不要在输出窗格中依赖简单的错误消息,而是不包含比异常类型及其错误消息更多的简短错误消息,而是可以准确查看问题出在哪里!

您可以在左下角开放断点导航窗格,单击X按钮添加一个异常断点:

点击“添加例外断点...”菜单项后,你会看到这个断点配置视图中打开了:

点击完成按钮,您将在b的列表中的新异常断点reakpoints。如果你想拥有你所有的Xcode工作区包括异常断点处,右键单击(Ctrl +单击)就可以了,然后打开“移动断点”菜单项:

点击“用户”后在子菜单中,您将看到异常断点位于用户组断点中。打开另一个项目,它会自动包含在断点列表中。

快乐调试!

+13

谢谢。他们必须疯了。这个变化的重点是什么?让开发者的生活悲惨?谢谢!!!!!!!!!!!!!!!! – SpaceDog

+0

任何方式将其设置为永久的xcode? – SpaceDog

+0

本教程末尾有关将其移动到“User”的位使其成为永久的 – BarrettJ

5

只要尝试下面为我工作的步骤。

  1. 打开首选项,选择行为选项卡。
  2. 从左栏选择“意外退出”。
  3. 选择“显示当前视图的调试器”。

不幸的是,这是恢复到main.m文件在编辑器中再次:)现在你需要按照以下步骤

  1. 打开偏好,选择行为选项卡。
  2. 只要进入“运行结束后”
  3. 没有找到“显示”行,点击复选框
  4. 在同一行修改的目标去“当前”的下拉菜单。

这应该工作

+1

哇。下一个版本苹果应该让它更难配置。谢谢 – SpaceDog

+0

哈哈!他们仍然有** EXACT **相同​​的错误。跳到一个没有告诉你任何东西的文件是没有意义的。如果我取消选中所有框,我认为(像苹果公司教会我的)注意到了。代替发生的事情。 *“如果用户不想为这个事件做任何事情,跳到一个随机无意义的文件”*悲伤。 –