当我启用所有异常断点时,我的应用程序总是在AppDelegate中停止,但我能够继续执行程序,但它非常烦人的原因总是把我带到appdelegate。有什么想法吗?
答案 0 :(得分:68)
仅启用Objective-C断点。
要查看导致错误的实际语句,请添加异常断点:
从主菜单调试:断点:创建异常断点。
右键单击断点并将异常设置为Objective-C。这将忽略其他类型的异常,例如来自C ++。有部分API使用例如Core Data(Apple是 Special )等异常。
添加动作:" po $ arg1"。
运行应用程序以获取断点,您将位于导致异常的行,并且错误消息将位于调试器控制台中。
答案 1 :(得分:10)
如果您正在使用Swift,或者您希望捕获所有异常,则可以在评估操作后将“所有例外”上的选项更改为自动继续。只需在Breakpoint Navigator中找到它并右键/ ctrl单击所有Exceptions Breakpoint进行编辑:
然后选中选项框:
答案 2 :(得分:4)
C ++代码中的例外常见和正常。异常断点即使正确处理它们也会捕获每个引发的异常。所以,如果你没有指定Obj-C,你会发现执行在许多看似随机的地方停止。我特意与AVAudioPlayer一起遇到这个问题。
需要注意的另一件事是缺少资产。我从另一位似乎也遇到同样问题的提问者那里得到了这个问题。
Xcode throws an exception in Main() in iOS 8 with 'all exceptions' breakpoint