美文网首页
使用 atos 符号化具体崩溃行

使用 atos 符号化具体崩溃行

作者: coder_feng | 来源:发表于2021-07-07 22:34 被阅读0次

1.样例

[E][2020-12-18 +8.0 20:55:53.821][0, 10750116352*][kTagLogSDK][, signalHandler, 157][Error:Signal Exception:
Signal SIGSEGV was raised.
Call Stack:
1   HLLCourseLive                       0x00000001015afccc HLLCourseLive + 7634124
2   HLLCourseLive                       0x0000000101f20fcc HLLCourseLive + 17534924
3   HLLCourseLive                       0x0000000101f20b4c HLLCourseLive + 17533772
4   libsystem_platform.dylib            0x00000001dab45d90 ABB790D3-1875-3996-AAEE-06E7568EA1C9 + 28048
5   CoreFoundation                      0x000000019517a3e0 96F8386D-D88A-3C89-A323-A17975C3317F + 25568
6   HLLCourseLive                       0x00000001014f5974 HLLCourseLive + 6871412
7   HLLCourseLive                       0x00000001014f57b8 HLLCourseLive + 6870968
8   HLLCourseLive                       0x00000001014f253c HLLCourseLive + 6858044
9   HLLCourseLive                       0x00000001014f34fc HLLCourseLive + 6862076
10  HLLCourseLive                       0x0000000101458e14 HLLCourseLive + 6229524
11  HLLCourseLive                       0x00000001014574fc HLLCourseLive + 6223100
12  CoreFoundation                      0x00000001951f1360 96F8386D-D88A-3C89-A323-A17975C3317F + 512864
13  CoreFoundation                      0x00000001951f1320 96F8386D-D88A-3C89-A323-A17975C3317F + 512800
14  CoreFoundation                      0x00000001951f0918 96F8386D-D88A-3C89-A323-A17975C3317F + 510232
15  CoreFoundation                      0x00000001951f0310 _CFXNotificationPost + 696
16  Foundation                          0x00000001964240a0 F1BC26A1-F5BB-36F7-A65A-D5F232DBF902 + 24736
17  HLLCourseLive                       0x000000010147ef44 HLLCourseLive + 6385476
18  HLLCourseLive                       0x00000001014adb14 HLLCourseLive + 6576916
19  libdispatch.dylib                   0x0000000194ec6298 6C143C51-288F-3CD0-84DD-17B9A0AAEE62 + 393880
20  libdispatch.dylib                   0x0000000194ec7280 6C143C51-288F-3CD0-84DD-17B9A0AAEE62 + 397952
21  libdispatch.dylib                   0x0000000194e7605c 6C143C51-288F-3CD0-84DD-17B9A0AAEE62 + 65628
22  CoreFoundation                      0x000000019520e5d0 96F8386D-D88A-3C89-A323-A17975C3317F + 632272
23  CoreFoundation                      0x0000000195208a78 96F8386D-D88A-3C89-A323-A17975C3317F + 608888
24  CoreFoundation                      0x0000000195207b90 CFRunLoopRunSpecific + 572
25  GraphicsServices                    0x00000001ab52a598 GSEventRunModal + 160
26  UIKitCore                           0x0000000197af1638 71B59F62-19DA-3CFF-89E1-DACF333BAB0D + 11716152
27  UIKitCore                           0x0000000197af6bb8 UIApplicationMain + 164
28  HLLCourseLive                       0x0000000101251438 HLLCourseLive + 4101176
29  libdyld.dylib                       0x0000000194ee6588 E31C0887-C999-3047-9B80-203248EC2396 + 5512
threadInfo:
<NSThread: 0x280c1c200>{number = 1, name = main}
  • 1、cd 到 appName.dYSM/Contents/Resources/DWARF/

  • 2、终端执行 xcrun atos -o ./appName -l 模块加载地址 崩溃地址 -arch arm64 命令,例如:这里的 0x00000001015afccc 这一个为崩溃地址,模块加载地址为 0x00000001015afccc - 0x747ccc(7634124的十六进制),为0x100E68000,那么终端输入如下:

xcrun atos -o ./HLLCourseLive -l 0x100E68000 -arch arm64

回车后,后续再输入想要符号化的地址,例如这里最后的崩溃地址:0x00000001015afccc 等,如下


还原符号表.png

有时候在符号化的时候会发现符号化出来的信息对应不上,这时候就需要确定好崩溃机型的arm架构了,具体的可以看 bugly→ 其他信息→ App Arch 字段

需要注意的是,这里只能加载地址显示为本项目非系统库的,如果需要加载系统SDK的则需要用IDA或者是otool解析了

系统符号表存储位置:~/Library/Developer/Xcode/iOS\ DeviceSupport/

otool -v -arch arm64 -s __TEXT __objc_methname <KitAddress> <Address>

eg:
otool -v -arch arm64 -s __TEXT __objc_methname ./CoreFoundation 0x0000000195207b90 

相关文章

网友评论

      本文标题:使用 atos 符号化具体崩溃行

      本文链接:https://www.haomeiwen.com/subject/mqnaultx.html