【发布时间】:2012-11-26 11:29:42
【问题描述】:
如果抛出未处理的 NSException,则堆栈跟踪有如下部分:
Last Exception Backtrace:
0 CoreFoundation 0x32bd688f __exceptionPreprocess + 163
1 libobjc.A.dylib 0x34b7b259 objc_exception_throw + 33
2 CoreFoundation 0x32bd65c5 -[NSException init] + 1
3 Foundation 0x37296bd7 -[NSObject(NSKeyValueCoding) valueForUndefinedKey:] + 263
...
但是如果 std::exception 被抛出,我只会得到这个:
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x34f2632c __pthread_kill + 8
1 libsystem_c.dylib 0x31e4c208 pthread_kill + 48
2 libsystem_c.dylib 0x31e45298 abort + 88
3 libc++abi.dylib 0x33bcaf64 abort_message + 40
4 libc++abi.dylib 0x33bc8346 default_terminate() + 18
5 libobjc.A.dylib 0x349f4368 _objc_terminate + 164
6 libc++abi.dylib 0x33bc83be safe_handler_caller(void (*)()) + 70
7 libc++abi.dylib 0x33bc844a std::terminate() + 14
8 libc++abi.dylib 0x33bc981e __cxa_rethrow + 82
9 libobjc.A.dylib 0x349f42a2 objc_exception_rethrow + 6
10 CoreFoundation 0x329a5506 CFRunLoopRunSpecific + 398
11 CoreFoundation 0x329a5366 CFRunLoopRunInMode + 98
12 GraphicsServices 0x32af2432 GSEventRunModal + 130
13 UIKit 0x34f84cce UIApplicationMain + 1074
14 APP_NAME 0x00086b10 main (main.m:68)
15 APP_NAME 0x00071b98 start + 32
如何从该崩溃日志中获取准确的崩溃信息?
更新--
我已经尝试过 HockeyApp,但它与 iTunes 崩溃日志具有相同的限制 - 它不会告诉我未处理的 C++ 异常的堆栈。
【问题讨论】:
-
您是否使用第三方工具(如 crittercism 或 testflightapp)来获取报告的崩溃。您必须上传一个 dsym 文件,然后它将象征崩溃,它会向您显示崩溃发生的确切行。要查找 dsym 文件,您可以右键单击管理器窗口中的 .ipa 文件或存储它的位置,然后右键单击并显示内容。
-
我没有使用任何第三方工具。你能推荐一个吗?另外,我怀疑这些工具可能无法处理 C++ 异常——你知道有人这样做吗?
-
不确定。但是在这里,还有一个与您类似的问题:stackoverflow.com/questions/11883069/…
标签: iphone ios ipad crash crash-reports