【发布时间】:2013-06-18 18:54:00
【问题描述】:
总结
当我设置异常断点时,我没有收到异常消息。如何获取异常消息?我已经知道如何获取堆栈跟踪,但这不包括异常消息。
详情
过去我使用 Xcode 开发 iOS 应用程序,当出现问题时,我会收到错误/异常。异常通常会显示“无法取消引用 null”之类的消息。
现在,在过去几周使用 Xcode 4.6.x 时,我从未收到异常消息。我经常会得到一个 SIGABRT。我在异常断点处设置了中断,它会在那里中断,但它在 iOS SDK 的某些程序集中关闭,我从未收到消息。
事实上,我不记得上次在调试器控制台中看到任何内容是什么时候了。
异常信息是否随着向 LLVM 的迁移而消失?
让我的应用程序在 SDK 中崩溃而不知道原因是非常令人沮丧的。我检查最后一个函数以确保设置正确(分配的对象等)并且它们是正确的,这意味着我没有任何线索。
是否有可能是过去保留的构建设置以某种方式关闭了异常消息?
请重新提出问题。它现在有了答案!
在 cmets 中给出了很好的答案。这应该提升为完整答案,因此我可以标记已回答的问题,其他有此常见问题的人可以找到它。为了实现这一点,需要重新提出问题! (之后我会删除这个请求。)
【问题讨论】:
-
你在这个断点有
bt作为动作吗?右键单击 -> 编辑断点 -> 操作 -> 下拉菜单中的“调试器命令”,文本字段中的bt。这应该在控制台中打印回溯。 -
你只需要创建exception breakpoint
-
如果设置了异常断点,那么在异常打印到控制台之前断点被命中。我解释了如何设置断点来打印异常here。
-
你看the link I gave earlier了吗?因为我对完全相同的问题感到沮丧,并且在 WWDC 2013 上我得到了一些 lldb 团队成员来帮助我解决它。我在该链接中解释了如何解决它。
-
如果问题被重新打开,我会的。
标签: ios objective-c xcode