iOS堆栈符号化方案解析
2018-10-30 本文已影响44人
child_cool
方案来源:Bugly
实现原理:
- 获取dsym文件中的实体文件并解析出符号对照表
- 通过上传的崩溃日志和基地址配合符号对照表解析出堆栈信息
实现步骤:
-
获取dsym文件中的实体文件
Snip20181030_2.png
- 下载符号表提取工具,最新版本是2.5.2,解压后如图: Snip20181030_4.png
-
通过如图指令生成符号表文件
Snip20181030_7.png -
解压文件:
Snip20181030_9.png
-
因为已经确定了是arm64,所以打开arm64文件:
Snip20181030_6.png
-
获取堆栈地址
Snip20181030_8.png -
获取基地址,例如 0x0000000104074000(客户端上传参数)
-
堆栈地址减去基地址(0x0000000183a88b58-0x0000000104074000)获取偏移地址
-
从符号对照表中获取偏移地址对应的内容
-
遍历解析文件,即生成符号化解析结果