问题是,当我在设备上调试我的应用程序时,它不会调用异常断点。 例如,当我在模拟器上调试以下代码时
NSArray* array = [[NSArray alloc] initWithObjects:@"1",@"2", nil];
NSLog(@"%@",array[3]);
它工作正常,并以断点和NSRangeException停止 但是当我在设备上调试它时,我看到以下内容
任何帮助将不胜感激
答案 0 :(得分:0)
有什么问题?在调用objc_exception_throw()
的内部,它停止在抛出异常的位置,因为左侧的堆栈跟踪指示。如果将调试导航器底部的滑块一直拖到右侧,则可以看到完整的堆栈跟踪。
如果你想看看抛出的异常是什么,它就在第一个(也是唯一的)参数中。在ARM上,第一个参数在R0寄存器中传递,因此您可以在调试器控制台中使用此命令查看它:
(lldb) print-object $r0
或者您可以继续使用调试器,如果没有捕获到异常,它将被打印到控制台。