I use 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:]: index 0 beyond bounds for empty array
但我的应用程序中有数十个数组,因此我需要帮助使用从堆栈跟踪中获取的数据来查找引发异常的特定行。
有谁知道 Apple 或其他公司的一篇好文章/教程,我可以在其中学习解码堆栈跟踪中的数字以找到源代码中有问题的行。
提前致谢!
我强烈建议在 Xcode 中启用异常断点。它将在导致应用程序崩溃的确切行停止执行代码。因此您无需担心是哪一个阵列导致崩溃。
*** -[__NSArrayI objectAtIndex:]: 索引 0 超出空数组的范围
添加异常断点
- 转到 Xcode 上的断点部分
- 单击该部分底部的加号
- 选择添加异常断点
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)