【问题标题】:Xcode console wont show error detailsXcode 控制台不会显示错误详细信息
【发布时间】:2013-08-27 14:23:59
【问题描述】:

我已经开发 iOS 应用程序大约 2 年了,以前从未遇到过这种情况。

我最近接手了一个项目,但由于某种原因,当我在调试时它崩溃时,控制台没有显示有关错误的详细信息。该代码使用 SIGABRT 或 ESC_BAD_ACCESS 突出显示,但从未告诉我控制台中崩溃的详细信息(例如发送到实例的无法识别的选择器等)

我得出的结论是,这是项目设置的问题,因为我用相同的 xCode 测试其他应用程序并且没有相同的问题。

我找遍了,但找不到有类似问题的人,请帮忙!

【问题讨论】:

  • 只是一次崩溃还是每次崩溃?尝试故意制造一些错误。
  • 实例在什么时候崩溃??
  • 这是迄今为止我遇到的每一次崩溃 - 无论是什么类型,也无论它在应用程序的哪个位置崩溃
  • 什么代码?突出显示的行是通过展开堆栈获得的。在多种情况下,这会产生误导,尤其是在启用优化时。
  • 这行代码是 [self.someArray insertObject:self.objectWhichIsNowNil atIndex:rowIndex]; self.someArray 中仍然有项目,而 self.objectWhichIsNowNil 肯定为零,因为我手动调试并发现这就是问题所在

标签: ios xcode


【解决方案1】:

尝试添加异常断点:

  1. 打开断点导航器,点击+图标,添加异常断点

  1. 使用如图所示的设置添加断点

【讨论】:

  • 是的,我已经有一个异常断点。奇怪的是,当我输入 [self performSelector:@selector(methodNameNotExistingInMyProject:) withObject:nil];抛出异常并在控制台中打印描述。但是当我输入 [self.someArray insertObject:self.objectWhichIsNowNil atIndex:rowIndex];它根本不打印异常
  • 在第二种情况下,self.someArray 绝对不是nil?将消息传递给nil 什么都不做,包括不会导致错误。
  • 是的 self.someArray 肯定仍然有项目。我传递给该方法的 self.objectWhichIsNowNil 肯定为零(在使用 NSLogs 进行一些手动调查后,我发现了这个问题)
【解决方案2】:

我认为这不是 Xcode 问题。但试试这两个选项:

1) 在您的 VC 或 AppDelegate 中故意执行崩溃,例如:

    [self performSelector:@selector(methodNameNotExistingInMyProject:) withObject:nil];

这应该会返回一些控制台输出

2) 你确定你在方案中有Debug 配置吗?您可能想检查一下。

【讨论】:

  • 奇怪的是当我输入 [self performSelector:@selector(methodNameNotExistingInMyProject:) withObject:nil];抛出异常并在控制台中打印描述。但是当我输入 [self.someArray insertObject:self.objectWhichIsNowNil atIndex:rowIndex];它根本不打印异常
  • 只是为了确认 - 应用程序正在使用 LLDB 以调试模式运行
猜你喜欢
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-24
  • 1970-01-01
相关资源
最近更新 更多