Xcode 5 不打印异常详细信息

Posted

技术标签:

【中文标题】Xcode 5 不打印异常详细信息【英文标题】:Xcode 5 not printing exception detail 【发布时间】:2013-10-15 08:54:54 【问题描述】:

我有一个为 ios 7 构建的项目,到目前为止它运行良好,但在 Git 合并后,某些设置或某些东西被损坏,异常不再输出到控制台。因此,“由于未捕获的异常而终止应用程序”错误消息永远不会显示在控制台中。我在设备和模拟器上都试过这个项目,同样的事情。我找不到这个问题的原因以及如何解决它,我虚心地寻求您的帮助。

事实:

调试器正在运行, 调试器停止并突出显示正确的行, 所有异常断点都处于活动状态, NSLog 命令正在运行, lldb 中的 po 命令正在运行。

在寻求帮助之前我尝试过什么?

清理(包括构建文件夹)和重建项目, 重新启动 Xcode, 重新启动 OS X, 重新连接设备, 正在重启设备。

我还能做什么?感谢您的帮助!

【问题讨论】:

您是否尝试过比较 git 提交以找出更改的内容? 调试器停止后是否按下继续按钮?根据我的经验,直到您在调试器在异常断点处停止后按两次继续按钮后才会打印详细信息。 我检查了提交,项目文件没有任何变化。只有源代码文件。 @borrrden,我当然试过了。不会改变任何事情,即使停止调试,也不会向控制台输出任何异常信息。 "即使调试停止" -> 如果您停止调试器,当然不会打印任何内容。我认为这只是措辞不好? 我遇到了完全相同的问题。这让我彻底疯了。在模拟器和设备上都存在与 OP 相同的问题。我还确保在方案中打开了“日志异常”。 【参考方案1】:

我在尝试调试自动布局崩溃时遇到了这个问题。不确定这是否适用于所有情况,但这是我的解决方案:

我做了一些狩猎,发现了这个链接:

Investigating NSExceptions with LLDB

这导致我弄乱了异常断点来试图找出问题所在。就我而言,我总是可以在$eax 上找到描述,所以我决定在断点处添加一个动作,这样我就不必每次都调试它了。这导致它总是在没有断点的情况下打印$eax,所以它的行为就像我想要的那样(打印异常描述,继续崩溃)。

步骤:

解决了我目前遇到的问题,我确信此解决方案的变体(po $ebxpo [NSThread callStackSymbols] 等)应该可以解决大多数缺少异常描述的问题。

【讨论】:

我将在这里添加一个棘手的点,这也会有所帮助。 ctrl 单击然后转到“将断点移动到”,然后转到“用户”。它将使用户特定。

以上是关于Xcode 5 不打印异常详细信息的主要内容,如果未能解决你的问题,请参考以下文章

Chrome:将异常详细信息打印到控制台

使用 try except [重复] 时递归打印异常详细信息

SpringBoot-技术专区-详细打印启动时异常堆栈信息

try catch 日志打印详细出错信息,包括出错位置

Winston 不显示错误详细信息

对Java中的Exception(异常)机制的详细总结(大全)