ios - 在 Xcode 中调试未捕获的异常

标签 ios xcode

我正在尝试更好地使用 Xcode。我打开了 AllExceptions 断点。当我的应用程序崩溃时,我会看到:

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
*** First throw call stack:
(0xbb8052 0x209cd0a 0xba4db8 0x2255f2 0xc2439 0x12a5e0f 0x12a6589 0x146bfb1 0x147617c 0x12938e1 0x1290602 0x129b211 0x129b23f 0xc16a6 0x138a4c 0x138852 0x14d0e39 0x14d0143 0x14d13cf 0x14d3a31 0x14d398c 0x14cc3e7 0x1234812 0x1234ba2 0x121b384 0x120eaa9 0x28d3fa9 0xb8c1c5 0xaf1022 0xaef90a 0xaeedb4 0xaeeccb 0x28d2879 0x28d293e 0x120ca9b 0x265c 0x25c5)
terminate called throwing an exception(lldb) 

在 LHS 上,当我查看不同的线程时,我看不到任何真正有意义的东西。我看到一些 CFRunLoop 的东西,但我没有看到任何“正常”的方法名称,如 UITableView 委托(delegate)/数据源方法或我自己的方法。我想知道当我的应用程序崩溃时是否有更多可用的堆栈跟踪信息而不是十六进制的东西。我知道我可以在我访问数组的每个地方设置断点我认为我有问题因为我基本上只是想用我们的特定数据源有一个类似 Accordion 的 TableView ,但我想知道是否有更快的通过查看 Xcode 中有用的东西的方式。谢谢!

最佳答案

在 Xcode 中,

  1. 转到左侧 Pane 中的断点导航器。
  2. 点击底部的“+”。
  3. 选择“添加异常断点...”
  4. 保留默认选择,然后点击“完成”。

重新运行应用程序并查看执行是否在导致此异常的行处停止。

关于ios - 在 Xcode 中调试未捕获的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15013212/

相关文章:

ios - 如何连接 Storyboard中的原型(prototype)单元?

android - 是否可以用新推送替换/编辑/删除之前发送的通知(推送)

ios - 使用迦太基在 Xcode 中导入 ZipFoundation 不起作用

ios - 错误初始化 AZSCloudStorageAccount Swift 3

iphone - Apple Mach-O 链接器 (ID) 错误 _compress 和链接器命令失败,退出代码 1

ios - 如何在源代码控制下将本地化添加到设置包

ios - 设置其父 View 将移动的元素的 accessibilityFrame

iphone - 如何判断 NSOperation 已经执行了多长时间?

ios - NSDateComponents 的 NSLog 分秒 - 如何显示前导零?

objective-c - NSDictionary 问题