我们如何从普通文本数据生成象征性的崩溃报告



Im使用xcode 12和ios 13进行ios应用程序。

我在AppDelegate级别发现了运行时异常,将StackTrace(使用Thread.callStackSymbols(附加到日志文件中,并用.class扩展名保存。但Stacktrace不是人类可读的。我看了一些文章,发现我们必须从中生成对称的文件,它应该是可读的。

不幸的是,我找不到该怎么做?有人能提出标准的方法吗?

我将在这里附上我的log.crash文件输出内容,供您参考。

请帮助我解决这个问题,我非常感谢您的反馈和评论。

Crash Type : signal 
Summary: OTHER 
Reason: Signal OTHER(5) was raised 
Version: 1.0 
AppInfo: 
Device: iPad 
OS Version: iOS 13.5.1 
CallStack:  
2   libsystem_platform.dylib            0x00000001ad5b4884 3834105B-0F62-3E9B-A9F7-B9F29A2B7E1B + 34948
3   libswiftCore.dylib                  0x00000001bad57d70 01A8EE3D-C8DC-396B-89AD-A5F64DF13F80 + 220528
4   libswiftCore.dylib                  0x00000001bad57234 $ss17_assertionFailure__4file4line5flagss5NeverOs12StaticStringV_A2HSus6UInt32VtF + 468
5   libswiftCore.dylib                  0x00000001bad35ed0 $ss12_ArrayBufferV37_checkInoutAndNativeTypeCheckedBounds_03wasfgH0ySi_SbtF + 208
6   libswiftCore.dylib                  0x00000001bad39ac8 $sSayxSicig + 84
7   test                                0x000000010047fda8 $s13test24ToolOptionsContainerViewC03setdE8MetaData8toolTypeyAA0dL0O_tF + 1188
8   test                            0x000000010048341c $s13test24ToolOptionsContainerViewC06updatedeG08toolTypeyAA0dJ0O_tF + 188
9   test                            0x000000010047f2bc $s13test24ToolOptionsContainerViewC5frame8toolType8delegateACSo6CGRectV_AA0dJ0OAA0defG8Delegate_ptcfc + 2852
10  test                                0x000000010047e788 $s13test24ToolOptionsContainerViewC5frame8toolType8delegateACSo6CGRectV_AA0dJ0OAA0defG8Delegate_ptcfC + 88
11  test                                0x00000001002d1564 $s13test0bC4ViewC18setUpHeaderToolbar33_DCFA78A12B92B8638AD99354F8879966LLyyF + 12292
12  test                                0x00000001002ce540 $s13test0bC4ViewC12initSubViews33_DCFA78A12B92B8638AD99354F8879966LLyyF + 32
13  test                                0x00000001002cd568 $s13test0bC4ViewC5frameACSo6CGRectV_tcfc + 3716
14  test                                0x00000001002cd644 $s13test0bC4ViewC5frameACSo6CGRectV_tcfcTo + 56
15  test                                0x000000010023c854 $sSo6UIViewCABycfcTO + 28
16  test                                0x000000010023c82c $sSo6UIViewCABycfC + 32
17  test                                0x000000010024d0ac $s13test0bC14ViewControllerC04loadD0yyF + 200
18  test                                0x000000010024f7e8 $s13test0bC14ViewControllerC04loadD0yyFTo + 32
19  UIKitCore                           0x00000001b130eee4 BD57BD6E-12B4-3F92-85CA-754932DA499D + 4108004
20  UIKitCore                           0x00000001b130f5e8 BD57BD6E-12B4-3F92-85CA-754932DA499D + 4109800
21  UIKitCore                           0x00000001b128dbc0 BD57BD6E-12B4-3F92-85CA-754932DA499D + 3578816
22  UIKitCore                           0x00000001b12363d0 BD57BD6E-12B4-3F92-85CA-754932DA499D + 3220432
23  UIKitCore                           0x00000001b1232654 BD57BD6E-12B4-3F92-85CA-754932DA499D + 3204692
24  UIKitCore                           0x00000001b195bb64 BD57BD6E-12B4-3F92-85CA-754932DA499D + 10713956
25  UIKitCore                           0x00000001b194b50c BD57BD6E-12B4-3F92-85CA-754932DA499D + 10646796
26  UIKitCore                           0x00000001b197b9f0 BD57BD6E-12B4-3F92-85CA-754932DA499D + 10844656
27  CoreFoundation                      0x00000001ad82906c 50CF3336-313F-3A7D-9048-CB1ED8EC3368 + 688236
28  CoreFoundation                      0x00000001ad823f60 50CF3336-313F-3A7D-9048-CB1ED8EC3368 + 667488
29  CoreFoundation                      0x00000001ad8243dc 50CF3336-313F-3A7D-9048-CB1ED8EC3368 + 668636
30  CoreFoundation                      0x00000001ad823ce8 CFRunLoopRunSpecific + 424
31  GraphicsServices                    0x00000001b796e38c GSEventRunModal + 160
32  UIKitCore                           0x00000001b1952444 UIApplicationMain + 1932
33  test                       0x000000010039d00c main + 88
34  libdyld.dylib                       0x00000001ad6ab8f0 3D6D64B4-CB2B-3CC4-A7E9-02774DF7AE74 + 6384

请在下面的链接中尝试,它在一定程度上起到了作用。但是缺少行号。

https://github.com/GDXRepo/CallStackParser

CwlDemangle有一些编译错误,并用下面的文件替换它。

https://github.com/mattgallagher/CwlDemangle/blob/master/CwlDemangle/CwlDemangle.swift

我们可以从下面的方式得到callStackSymbols

var callStackSymbols = Thread.callStackSymbols

let callStackSymbols = exteption.callStackSymbols

并将callStackSymbols传递给classAndMethodForStackSymbol(callStackSymbol)

然后它将返回解码后的字符串。

最新更新