Skip to main content

符号表

1. 什么是符号表?

对于不同平台来说,符号表的意义略有差异。对于Android平台来说,包含两类符号表,一类是SO的符号表,另一类是Java的mapping文件。对于iOS平台来说,符号表指dSYM文件。无论是哪类符号表,其目的都是将混淆后的堆栈进行还原,还原成开发可读的文件名、方法名及行号。

示例1: Android Java堆栈还原

Img 4

示例2: Android Native堆栈还原 Img 5

示例3: iOS 堆栈还原 Img 6

详细请查看各平台的符号表介绍:

2. 怎么上传符号表?

当前Bugly支持两种符号表上传方式,一种是通过网页上传,另一种是通过符号表工具上传。

方式一:网页上传

提醒
  1. 网页上传当前只支持上传100M以内的符号表文件,超过100M的文件需要通过符号表工具上传。
  2. 无论是SO符号表,dSYM文件还是Java mapping文件,都需要用户先用zip压缩后,再拖拽上传。
  3. 对于mapping文件,一定要命名为mapping.txt,再用zip压缩成mapping.txt.zip,然后拖拽到上传区域中。
  4. 对于so文件,先将要上传的so文件用zip压缩,如libnative.so,zip压缩成libnative.so.zip,然后拖拽到上传区域中。
  5. 对于dSYM文件,先将要上传的dSYM文件用zip压缩,如 BuglyPro.dSYM, 压缩成 BuglyPro.dSYM.zip 后,拖拽上传 BuglyPro.dSYM.zip 文件。

入口一:设置/符号表;

iOS Img 16

入口二:问题详情/个例详情/符号表;

Android Img 6

详细请参考:

方式二:符号表工具上传

详细参考 符号表上传工具

3. 怎么管理符号表?

用户可以在 设置/符号表 查看当前产品的符号表信息。

  1. 查看指定的符号表是否已经上传;

  2. 上传符号表;

  3. 查看产品符号表的整体情况;

  4. 重新上传指定符号表文件;

Img 2

4. 什么是符号表的UUID?

Android的SO符号表,iOS的dSYM文件通过UUID来唯一标识一个符号表文件。SDK在捕获到异常堆栈后,会获取对应模块的UUID。符号表还原平台,根据这个UUID来检索对应的符号表文件。

示例一:Android Native堆栈中,包含UUID信息,还原系统通过UUID来检索符号表。

Img 8

详细参考 《UUID提取指引》