【问题标题】:Xcode debug on device failure设备故障时的 Xcode 调试
【发布时间】:2013-12-19 14:01:34
【问题描述】:

问题是,当我在设备上调试我的应用程序时,它不会调用异常断点。 例如,当我在模拟器上调试以下代码时

NSArray* array = [[NSArray alloc] initWithObjects:@"1",@"2", nil];
NSLog(@"%@",array[3]);

它工作正常,并在断点和 NSRangeException 处停止 但是当我在设备上调试它时,我看到以下内容

任何帮助将不胜感激

【问题讨论】:

  • [NSArray objectAtIndex:] 内部出现异常,请问有什么问题?
  • 该代码仅用作示例。问题是我在设备上运行我的应用程序时未调用异常断点
  • 我很困惑。那么“但是当我在设备上调试它时,我看到以下内容”是什么意思?
  • 当我的应用程序在设备上运行时出现错误,它不会显示在异常断点中。现在清楚了吗?
  • 设备和模拟器的构建设置有区别吗?想不出是什么原因造成的,但是当你经历任何差异时,你可能会得到一个线索。祝你好运。

标签: ios iphone objective-c xcode debugging


【解决方案1】:

有什么问题?它在引发异常的地方停止,在对objc_exception_throw() 的调用内,如左侧的堆栈跟踪所示。如果将调试导航器底部的滑块一直拖到右侧,则可以看到完整的堆栈跟踪。

如果您想查看抛出的异常是什么,它位于第一个(也是唯一一个)参数中。在 ARM 上,第一个参数是在 R0 寄存器中传递的,所以你可以在调试器控制台中用这个命令看到它:

(lldb) print-object $r0

或者你可以在调试器中继续,如果没有捕获到异常,它会被打印到控制台。

【讨论】:

    猜你喜欢
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 2011-07-16
    相关资源
    最近更新 更多