【发布时间】:2014-07-06 00:35:30
【问题描述】:
得到下面的崩溃报告,但不知道为什么会发生以及如何修复它。
SIGABRT 在 0x000000019aa3258c 处中止
libsystem_kernel.dylib __pthread_kill
Thread : Crashed: com.apple.main-thread
0 libsystem_kernel.dylib 0x000000019aa3258c __pthread_kill + 8
1 libsystem_pthread.dylib 0x000000019aab516c pthread_kill + 104
2 libsystem_c.dylib 0x000000019a9c6808 abort + 112
3 libc++abi.dylib 0x0000000199bec994 __cxa_bad_cast
4 libc++abi.dylib 0x0000000199c07184 std::__terminate(void (*)()) + 44
5 libc++abi.dylib 0x0000000199c06d3c __cxa_rethrow + 144
6 libobjc.A.dylib 0x000000019a3443a8 objc_exception_rethrow + 44
7 CoreFoundation 0x000000018dd3d74c CFRunLoopRunSpecific + 576
8 GraphicsServices 0x0000000193a21c0c GSEventRunModal + 168
9 UIKit 0x0000000190e6efdc UIApplicationMain + 1156
10 ************* 0x00000001000a5c80 main (main.m:17)
11 libdyld.dylib 0x000000019a937aa0 start + 4
【问题讨论】:
-
您看到的是抛出了一个 Objective C 异常。您的应用程序没有捕捉到它,因此操作系统正在终止您的应用程序。您可以首先打开 Objective-C 异常断点并在调试器中中断抛出的异常。然后运行您的应用程序并让它再次发生。
-
我认为 pthread_kill 是未处理异常的结果,而不是原因。正如user1118321所说,通过设置异常断点很容易找到导致这种情况的原因。
-
@user1118321 如果我不知道如何重新创建异常,知道如何捕获异常吗?
-
您可以编写代码来捕获异常并对其进行处理,但如果您不知道是什么原因造成的,那么修复该错误将非常困难。 See here 详细了解如何捕获异常并执行某些操作(记录它,或将其显示给用户,或其他)。这将阻止立即崩溃,但如果您不小心,它可能会使您的应用程序处于奇怪的状态。来自设备的其他日志也可以提供线索。