在友盟后台看到一处崩溃信息,发现友盟后台未对其进行解析,手动使用命令解析后,让Ai整理了崩溃日志命令整理的文档在下方,便于后期查阅。
1. 准备工作 - 验证文件匹配性
检查 UUID 匹配
1 2 3 4 5
| dwarfdump --uuid MyApp.app/MyApp
dwarfdump --uuid MyApp.app.dSYM/Contents/Resources/DWARF/MyApp
|
2. 自动化解析方法
使用 symbolicatecrash(推荐)
1 2 3 4 5 6 7 8
| find /Applications/Xcode.app -name symbolicatecrash -type f
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
symbolicatecrash crash_log.crash MyApp.app.dSYM > symbolicated_crash.crash
|
3. 手动解析方法
使用 atos 命令解析单个地址
1 2 3 4 5 6 7 8
| atos -o MyApp.app.dSYM/Contents/Resources/DWARF/MyApp -l <load_address> <crash_address>
atos -o MyApp.app/MyApp -l <load_address> <crash_address>
atos -o MyApp.app.dSYM/Contents/Resources/DWARF/MyApp -l 0x100000000 0x100001234
|
批量解析多个地址
1 2 3 4 5 6
| atos -o MyApp.app.dSYM/Contents/Resources/DWARF/MyApp -l <load_address> << EOF 0x100001234 0x100002345 0x100003456 EOF
|
4. 辅助诊断命令
查看二进制文件信息
1 2 3 4 5
| lipo -info MyApp.app/MyApp
file MyApp.app/MyApp
|
查看调试符号信息
1 2
| dwarfdump MyApp.app.dSYM
|
5. 完整解析流程
- 验证匹配性:使用
dwarfdump --uuid
确认二进制文件和 dSYM 文件的 UUID 一致
- 选择解析方法:
- 自动解析:使用
symbolicatecrash
处理整个崩溃日志
- 手动解析:使用
atos
解析特定地址
- 执行解析:根据崩溃日志中的 load address 和 crash address 进行解析
- 分析结果:查看解析后的函数名、文件名和行号信息
这样整理后,您可以根据具体需求选择合适的解析方法。