【发布时间】:2012-08-21 22:20:08
【问题描述】:
我使用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 或其他方面的好文章/教程,我可以在其中学习解码堆栈跟踪中的数字以找到源代码中的问题行。 提前致谢!
【问题讨论】:
-
我建议您阅读本教程
My App Crashed -
这是我写的一篇使用atos翻译的帖子。我很少再使用这种方法,因为现在我只是将崩溃日志复制到 Xcode Organizer 中,它可以很好地进行符号化。无论如何,它可能会有所帮助:saveme-dot-txt.blogspot.com/2011/04/…
-
也许 GTMStackTrace 有帮助 code.google.com/p/google-toolbox-for-mac/source/browse/trunk/…
-
Mike M,你把崩溃日志复制到 XCode Organizer 是什么意思?
-
此链接显示如何使用 lldb 的
image lookup和source list查找违规代码行:stackoverflow.com/questions/18112842/…
标签: objective-c ios debugging exception-handling stack