符号表解析崩溃日志

1、什么是符号表

符号表是内存地址与函数名、文件名、行号的映射表。符号表元素如下所示:
<起始地址> <结束地址> <函数> [<文件名:行号>]

就大概是这个这样的东西

2、符号表的作用

使用符号表可以对APP发生Crash的程序堆栈进行解析和还原,能为了能快速并准确地定位用户APP发生Crash的代码位置

解析前的崩溃堆栈:

解析后:

3、上传符号表

3.1 IOS

ios的符号表文件就是dSYMs文件夹

文件通常可以通过Xcode进行查看,Window -> Organizer -> Archives -> 选择对应的Archives包 -> Show in Finder -> 选折对应的.xcarchive文件 -> 显示包内容 -> 打开dSYMs文件夹

找到打成zip,再手动上传bugly,就可以了

3.2 安卓

下载bugly的工具

Android 符号表工具

阅读里面的使用指南符号表工具Android版-使用指南.pdf,(各个参数根据实际情况填)

4、 本地解析崩溃日志

IOS本地解析崩溃堆栈

安卓:命令行

“E:/android-ndk-r13b-windows-x86_64/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-addr2line.exe” -f -C -e “F:/ProjectG/pjg-client/AndroidProj/StagingArea/symbols/armeabi-v7a/libunity.sym.so” 00576c98&exit

(运行 arm-linux-androideabi-addr2line.exe, 参数 -f -C -e so路径 日志对应行的内存地址)
就会输出解析后的堆栈信息