gpt4 book ai didi

objective-c - 如何从 obj-c/ios 中的堆栈跟踪获取源代码行

转载 作者:IT王子 更新时间:2023-10-29 08:01:20 26 4
gpt4 key购买 nike

我使用 NSSetUncaughtExceptionHandler 将堆栈跟踪打印到 iPhone 中的本地文件,该文件将在应用下次启动时发送到我们的服务器。然后我可以检查异常数据并修复错误。在一些崩溃中,我有模块名称和抛出异常的函数,这些很容易。但大多数情况下我有这样的事情:

"4   libc++abi.dylib 0x35bba3c5 _ZL19safe_handler_callerPFvvE + 76",
"5 libc++abi.dylib 0x35bba451 _ZdlPv + 0",
"6 libc++abi.dylib 0x35bbb825 __cxa_current_exception_type + 0",
"7 libobjc.A.dylib 0x37bab2a9 objc_exception_rethrow + 12",
"8 CoreFoundation 0x3575a50d CFRunLoopRunSpecific + 404"

例如原因:

*** -[__NSArrayI objectAtIndex:]:索引 0 超出空数组的范围

但我的应用程序中有几十个数组,因此我需要帮助才能使用从堆栈跟踪中获取的数据找到引发异常的特定行。

有谁知道来自 Apple 或其他公司的一篇好文章/教程,我可以在其中学习解码堆栈跟踪中的数字以找到源代码中有问题的行。提前致谢!

最佳答案

我强烈建议在 Xcode 中启用异常断点。它将在使应用程序崩溃的确切行上停止执行代码。所以你不需要担心是哪个数组导致崩溃的。*** -[__NSArrayI objectAtIndex:]: 索引 0 超出空数组的范围

添加异常断点

  1. 转到 Xcode 上的断点部分
  2. 点击该部分底部的加号
  3. 选择添加异常断点

Exception BreakPoint

关于objective-c - 如何从 obj-c/ios 中的堆栈跟踪获取源代码行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12141804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com