1

简短描述:我们有一个来自 main.m 的 SIGABRT 崩溃。我们得到的唯一信息是来自 Crittercism 的最小崩溃报告,我们不知道如何重现崩溃。

详细说明:除上述外。我们最初的理论是用户从核心数据进程中遇到了崩溃,但堆栈跟踪中没有提到这一点。我们认为当用户尝试再次运行该应用程序时,由于数据损坏,它根本无法加载。我们不会启动我们的任何代码,所以我们怎么会在这样一个真正的阶段崩溃。我们在几个不同的应用程序版本中遇到了这个问题,没有添加或删除特定的库,所以它不应该是由于任何损坏的文件。

我们不确定这里是否有任何明确的答案,因为这个问题对于我们所掌握的信息来说非常复杂,但如果有人至少可以建议任何线索进行调查和分析——那就太好了。

Crashed Thread

libsystem_kernel.dylib 0x387fb350 __pthread_kill + 8 + 8    
libsystem_c.dylib 0x35ada973 abort + 95 + 94    
libc++abi.dylib 0x3307cd4f abort_message + 75 + 74  
libc++abi.dylib 0x33079ff9 _ZL17default_terminatev + 25 + 24    
libobjc.A.dylib 0x326c9a77 _ZL15_objc_terminatev + 147 + 146    
libc++abi.dylib 0x3307a07b _ZL19safe_handler_callerPFvvE + 79 + 78  
libc++abi.dylib 0x3307a114 _ZSt9terminatev + 20 + 19    
libc++abi.dylib 0x3307b599 __cxa_current_exception_type + 1 
libobjc.A.dylib 0x326c99d1 objc_exception_rethrow + 13 + 12 
CoreFoundation 0x38328f21 CFRunLoopRunSpecific + 457 + 456  
CoreFoundation 0x38328d49 CFRunLoopRunInMode + 105 + 104    
UIKit 0x39af947d -[UIApplication _run] + 669 + 668  
UIKit 0x39af62f9 UIApplicationMain + 1121 + 1120    
DM 0x0010e41b main (main.m:14)

其余线程(可能对更多信息有用)

Thread: Unknown Name
libsystem_kernel.dylib 0x387eb648 kevent64 + 24 + 24    
libdispatch.dylib 0x3a048658 _dispatch_mgr_thread$VARIANT$mp + 36 + 35

Thread: Unknown Name
libsystem_kernel.dylib 0x387fbd98 __workq_kernreturn + 8 + 8
libsystem_c.dylib 0x35a75a16 _pthread_wqthread + 366 + 365

Thread: Unknown Name
libsystem_kernel.dylib 0x387fbd98 __workq_kernreturn + 8 + 8
libsystem_c.dylib 0x35a75a16 _pthread_wqthread + 366 + 365

Thread: Unknown Name
libsystem_kernel.dylib 0x387eaeb4 mach_msg_trap + 20 + 20
CoreFoundation 0x383b7045 __CFRunLoopServiceMachPort + 129 + 128
CoreFoundation 0x383b5da3 __CFRunLoopRun + 883 + 882
CoreFoundation 0x38328ebd CFRunLoopRunSpecific + 357 + 356
CoreFoundation 0x38328d49 CFRunLoopRunInMode + 105 + 104
WebCore 0x3a3a9a45 _ZL12RunWebThreadPv + 445 + 444  
libsystem_c.dylib 0x35a80311 _pthread_start + 309 + 308

Thread: Unknown Name
libsystem_kernel.dylib 0x387eaeb4 mach_msg_trap + 20 + 20
CoreFoundation 0x383b7045 __CFRunLoopServiceMachPort + 129 + 128
CoreFoundation 0x383b5da3 __CFRunLoopRun + 883 + 882
CoreFoundation 0x38328ebd CFRunLoopRunSpecific + 357 + 356
CoreFoundation 0x38328d49 CFRunLoopRunInMode + 105 + 104
Foundation 0x327edbcd +[NSURLConnection(Loader) _resourceLoadLoop:] + 309 + 308
Foundation 0x3287167d __NSThread__main__ + 973 + 972
libsystem_c.dylib 0x35a80311 _pthread_start + 309 + 308

Thread: Unknown Name
libsystem_kernel.dylib 0x387eaf1c semaphore_timedwait_trap + 8 + 8
CoreLocation 0x33ff06e9 _Z22CLClientInvokeCallbackP10__CLClient13CLClientEventP11objc_object + 345 + 344
CoreLocation 0x33ff3d4d ___CLClientCreateConnection_block_invoke_0 + 389 + 388
CoreLocation 0x3402a073 __setEventHandler_block_invoke_0 + 347 + 346
libxpc.dylib 0x33f557e9 _xpc_connection_mach_event + 773 + 772
libdispatch.dylib 0x3a049529 _dispatch_mach_msg_invoke$VARIANT$mp + 125 + 124
libdispatch.dylib 0x3a045e91 _dispatch_queue_drain$VARIANT$mp + 81 + 80
libdispatch.dylib 0x3a0497b7 _dispatch_mach_invoke$VARIANT$mp + 163 + 162
libdispatch.dylib 0x3a045e91 _dispatch_queue_drain$VARIANT$mp + 81 + 80
libdispatch.dylib 0x3a045dc1 _dispatch_queue_invoke$VARIANT$mp + 41 + 40
libdispatch.dylib 0x3a045e91 _dispatch_queue_drain$VARIANT$mp + 81 + 80
libdispatch.dylib 0x3a045dc1 _dispatch_queue_invoke$VARIANT$mp + 41 + 40
libdispatch.dylib 0x3a04691d _dispatch_root_queue_drain + 185 + 184
libdispatch.dylib 0x3a046ac1 _dispatch_worker_thread2 + 85 + 84
libsystem_c.dylib 0x35a75a11 _pthread_wqthread + 361 + 360

Thread: Unknown Name
libsystem_kernel.dylib 0x387fbd98 __workq_kernreturn + 8 + 8
libsystem_c.dylib 0x35a75a16 _pthread_wqthread + 366 + 365


Thread: Unknown Name
libsystem_kernel.dylib 0x387eaeb4 mach_msg_trap + 20 + 20
CoreFoundation 0x383b7045 __CFRunLoopServiceMachPort + 129 + 128
CoreFoundation 0x383b5da3 __CFRunLoopRun + 883 + 882
CoreFoundation 0x38328ebd CFRunLoopRunSpecific + 357 + 356
CoreFoundation 0x383879bb CFRunLoopRun + 99 + 98
DM 0x0024f947 +[ASIHTTPRequest runRequests] + 151
Foundation 0x3287167d __NSThread__main__ + 973 + 972    
libsystem_c.dylib 0x35a80311 _pthread_start + 309 + 308

Thread: Unknown Name
libsystem_kernel.dylib 0x387fb594 select$DARWIN_EXTSN + 20 + 20
libsystem_c.dylib 0x35a80311 _pthread_start + 309 + 308

Thread: Unknown Name
libsystem_kernel.dylib 0x387fbd98 __workq_kernreturn + 8 + 8
libsystem_c.dylib 0x35a75a16 _pthread_wqthread + 366 + 365

Thread: Unknown Name
libsystem_kernel.dylib 0x387fbd98 __workq_kernreturn + 8 + 8
libsystem_c.dylib 0x35a75a16 _pthread_wqthread + 366 + 365

非常感谢您抽出宝贵的时间 - 我们非常感谢您。

谢谢,贾斯塔斯

4

2 回答 2

2

崩溃是由于异常而发生的,请参见objc_exception_rethrow崩溃线程的堆栈跟踪,该线程是主线程。遗憾的是Exception BacktraceandException Reason不可用。没有它,你什么都做不了。这将向您显示代码中引发异常的位置以及实际异常是关于什么的。

异常被运行时重新抛出到另一个运行循环中,为了捕获它们,需要崩溃报告框架来支持这一点。Crittercism 在后台使用 PLCrashReporter,它确实支持这一点。但也许您安装了旧版本的 SDK,或者他们使用的是旧版本的 SDK。

于 2013-02-21T12:33:25.740 回答
1

@Kerni,感谢您抽出宝贵时间!

我们已经联系了 Crittercism,他们建议我们研究面包屑 - 这将允许我们在应用程序周围放置大量自定义调用(用户触发任何特定操作 + 其他重要系统调用),一旦应用程序崩溃,Crittercism 将为我们存储最后 99 个面包屑。这将使我们能够了解用户遇到此特定崩溃的过程。

此外,我们还发现了使用元数据直接联系用户并与他们交流的能力。这也可以让我们获得有关特定问题的更多信息。最重要的是,它将使我们能够更有效地对崩溃做出反应。

我知道这不是我们问题的正确答案,但至少我们将拥有所有必需的工具来在实施后获得答案。

谢谢

于 2013-03-06T08:27:28.197 回答