如何像苹果一样知道崩溃发生在堆栈跟踪的特定线程中



我正在使用swift Perfect创建崩溃开发人员门户,在那里我必须对类似的崩溃进行分组,对于每次崩溃,我将分配address_id它使用symbol address = stack address - load address + slide计算,现在的问题是每个堆栈包含大约20行,有没有办法找到崩溃发生的位置,就像苹果对xccrashpoint所做的那样,即使崩溃发生在系统库中

例如:崩溃

Thread 0 Crashed:
0   libobjc.A.dylib                 0x000000018554443c objc_msgSend + 28
1   Foundation                      0x0000000186cb9610 empty + 72 (NSMapTable.m:57)
2   Foundation                      0x0000000186c03b18 -[NSConcreteMapTable dealloc] + 108 (NSMapTable.m:62)
3   Foundation                      0x0000000186c49610 -[NSISEngine dealloc] + 392 (NSISEngine.m:1779)
4   UIKit                           0x000000018fb70138 -[UIView _layoutConstraintCleanup] + 508 (UIView.m:3870)
5   UIKit                           0x000000018f89e578 -[UIView dealloc] + 184 (UIView.m:3884)
6   UIKit                           0x000000018fa0c500 -[UIViewController dealloc] + 700 (UIViewController.m:2340)
7   *******Framework                0x00000001018631e4 -[ViewController dealloc] + 160 (ViewController.m:536)
8   libdispatch.dylib               0x0000000185c66a14 _dispatch_client_callout + 16 (object.m:502)
9   libdispatch.dylib               0x0000000185c73698 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1016 (inline_internal.h:2500)
10  CoreFoundation                  0x0000000186292544 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 (CFRunLoop.c:1815)
11  CoreFoundation                  0x0000000186290120 __CFRunLoopRun + 2012 (CFRunLoop.c:3111)
12  CoreFoundation                  0x00000001861afe58 CFRunLoopRunSpecific + 436 (CFRunLoop.c:3245)
13  GraphicsServices                0x000000018805cf84 GSEventRunModal + 100 (GSEvent.c:2245)
14  UIKit                           0x000000018f90467c UIApplicationMain + 236 (UIApplication.m:3956)
15  ********                        0x00000001004b01b0 main + 88 (main.m:14)
16  libdyld.dylib                   0x0000000185ccc56c start + 4

Apple xccrashpoint:苹果xc崩溃点编辑:我能够在我的应用程序中发生的组崩溃。

尝试看到这篇文章,就得查dSYM文件分析崩溃信息符号化 iPhone 应用程序崩溃报告

最新更新