符号表
1. 什么是符号表?
对于不同平台来说,符号表的意义略有差异。对于Android平台来说,包含两类符号表,一类是SO的符号表,另一类是Java的mapping文件。对于iOS平台来说,符号表指dSYM文件。无论是哪类符号表,其目的都是将混淆后的堆栈进行还原,还原成开发可读的文件名、方法名及行号。
示例1: Android Java堆栈还原
示例2: Android Native堆栈还原
示例3: iOS 堆栈还原
详细请查看各平台的符号表介绍:
2. 怎么上传符号表?
当前Bugly支持两种符号表上传方式,一种是通过网页上传,另一种是通过符号表工具上传。
方式一:网页上传
提醒
- 网页上传当前只支持上传100M以内的符号表文件,超过100M的文件需要通过符号表工具上传。
- 无论是SO符号表,dSYM文件还是Java mapping文件,都需要用户先用zip压缩后,再拖拽上传。
- 对于mapping文件,一定要命名为mapping.txt,再用zip压缩成mapping.txt.zip,然后拖拽到上传区域中。
- 对于so文件,先将要上传的so文件用zip压缩,如libnative.so,zip压缩成libnative.so.zip,然后拖拽到上传区域中。
- 对于dSYM文件,先将要上传的dSYM文件用zip压缩,如 BuglyPro.dSYM, 压缩成 BuglyPro.dSYM.zip 后,拖拽上传 BuglyPro.dSYM.zip 文件。
入口一:设置/符号表;
入口二:问题详情/个例详情/符号表;
详细请参考:
方式二:符号表工具上传
详细参考 符号表上传工具
3. 怎么管理符号表?
用户可以在 设置/符号表 查看当前产品的符号表信息。
查看指定的符号表是否已经上传;
上传符号表;
查看产品符号表的整体情况;
重新上传指定符号表文件;
4. 什么是符号表的UUID?
Android的SO符号表,iOS的dSYM文件通过UUID来唯一标识一个符号表文件。SDK在捕获到异常堆栈后,会获取对应模块的UUID。符号表还原平台,根据这个UUID来检索对应的符号表文件。
示例一:Android Native堆栈中,包含UUID信息,还原系统通过UUID来检索符号表。
详细参考 《UUID提取指引》