简短描述:我们有一个来自主.m的SIGABRT撞车事故。我们得到的唯一信息是Critterism的一份最低限度的撞车报告,我们不知道如何重现撞车事故。
详细描述:除上述内容外。我们最初的理论是,用户会从核心数据进程中崩溃,但在堆栈跟踪中没有提到这一点。我们认为,当用户再次尝试运行该应用程序时,由于数据损坏,它根本无法加载。我们没有启动任何代码,所以我们怎么能在这样一个真正的阶段崩溃呢。我们在一些不同的应用程序版本中遇到了这个问题,没有添加或删除特定的库,所以这不应该是由于任何损坏的文件。
我们不确定这里是否有明确的答案,因为这个问题与我们所掌握的信息非常复杂,但如果有人至少可以建议任何线索进行调查和分析,那就太好了。
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
非常感谢您抽出时间,我们非常感谢您的分配。
谢谢,Justas
崩溃是由于异常而发生的,请参阅崩溃线程的堆栈跟踪中的objc_exception_rethrow
,它是主线程。遗憾的是,Exception Backtrace
和Exception Reason
不可用。没有它,你什么都做不了。这将向您显示代码中引发异常的位置以及实际异常的内容。
异常会被运行时重新抛出到另一个运行循环中,为了捕捉它们,需要崩溃报告框架来支持这一点。Critterism正在使用PLCrashReporter,它确实支持这一点。但是,也许你安装了旧版本的SDK,或者他们使用的是旧版本的
@Kerni,感谢您抽出时间!
我们已经联系了Critterism,他们建议我们查看面包屑-这将允许我们在应用程序周围放置大量自定义调用(用户正在触发任何特定操作+其他重要系统调用),一旦应用程序崩溃,Critterisms将为我们存储99个最后的面包屑。这将使我们了解用户在这次特定崩溃中的经历。
此外,我们还发现了使用元数据直接联系用户并与他们通信的能力。这也可以让我们获得关于某个特定问题的更多信息。最重要的是,它将使我们能够更有效地应对崩溃。
我知道这不是解决我们问题的恰当答案,但至少我们将拥有所有必要的工具,以便在实施后得到答案。
感谢