【问题标题】:Xcode always stopping at main.m after a crash崩溃后 Xcode 总是停在 main.m
【发布时间】:2012-01-09 09:47:26
【问题描述】:

在过去,使用旧的和好的 Xcode 3,每次我发生崩溃时,Xcode 都会停在显示崩溃的违规行。这是美好的时光,很高兴调试。

现在使用 Xcode 4.2,每次应用程序崩溃时,它都会在 main.m 的这一行停止

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

这并不能说明导致崩溃的原因。问题可能出现在任何类中,但当它崩溃时它总是会在 main.m 上停止。

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

谢谢

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

【问题讨论】:

  • 为了以后参考,不要再次发布相同的问题。编辑您的原始问题以提供新信息并将其返回首页。
  • 我已经要求删除旧的。

标签: iphone ios xcode ipad


【解决方案1】:

他们改变了行为,关注this tutorial to break on all exceptions

编辑:(链接可能会失效,所以我将在此处复制信息)

Xcode 4.2 中隐藏的宝石之一是“异常断点”功能。一旦你启用它,你的调试生活就会变得更加容易,因为每当你的应用程序中抛出异常时,Xcode 都会调出导致异常发生的代码行。如果您的调用堆栈窗口为空(我在 iOS 应用程序上工作时有时会发生这种情况),这将特别有用。无需依赖“输出”窗格中的简短错误消息(其中仅包含异常类型及其错误消息),您可以确切地看到问题出在哪里!

您可以通过打开 Breakpoint Navigator 窗格并单击左下角的 X 按钮来添加异常断点:

点击“Add Exception Breakpoint...”菜单项后,你会看到这个断点配置视图打开了:

单击完成按钮,您将在断点列表中创建新的异常断点。如果你想让你的所有 Xcode 工作区都包含异常断点,右键单击(Ctrl + 单击)它并打开“Move Breakpoint To”菜单项:

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

调试愉快!

【讨论】:

  • 谢谢。他们一定是疯了。这种改变有什么意义?让开发者的生活变得悲惨?谢谢!!!!!!!!!!!!!!!!!!
  • 教程末尾关于将其移至“用户”的部分使其永久化
【解决方案2】:

请尝试以下对我有用的步骤。

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

不幸的是,这又在编辑器中恢复为 main.m :) 现在您需要按照以下步骤操作

  1. 打开首选项,选择行为选项卡。
  2. 只需转到“运行完成”
  3. 找到“显示”行并单击复选框
  4. 在同一行修改目标以转到下拉菜单中的“当前”。

这应该可以工作

【讨论】:

  • 哇。下一个版本苹果应该更难配置。谢谢
  • 哈哈!他们仍然有 EXACT 相同的错误。跳转到一个不告诉你任何东西的文件是没有意义的。如果我取消选中所有框,我假设(就像 Apple 教我的那样)NOTING 发生了。相反,发生了一些事情。 “如果用户不想为这个事件做任何事情,就跳转到一个随机的无意义的文件”伤心。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
  • 1970-01-01
  • 2016-02-09
  • 2020-03-15
  • 2012-01-27
  • 2020-10-26
相关资源
最近更新 更多