iOS 通过dSYM文件分析crash-函数地址定位问题

一、手动解析

1.借助dwarfdump命令UUid:
    查看dSYM文件对应的app的uuid,确保和崩溃堆栈列表是同一个UUID;
    有些类似Bugly这种三方会有生成带UUID的文件,使用dwarfdump指令的时候需要删除此文件<也可以直接查看该文件名字,名字中包含的有UUID>;
    指令:dwarfdump --uuid xxx.app.dSY
image.png

image.png
2.使用DSYM文件还原堆栈

1)借助指令:dwarfdump xxx.app.dSYM --lookup <需要解析的相对地址>
2)有用的信息只有+号后面的。将其转化为十六进制,然后再加上符号表 TEXT 段的起始地址,就可以解析了,TEXT 段的起始地址使用otool可以获取:

image.png

3)日志捕获的堆栈一般有4列信息,库名称、运行时堆栈地址、运行时起始地址、偏移地址。(将39686636转换成16进制0x25D91EC)
img_v2_6ecfcd0c-65da-4296-a146-a3e70b8c996g.jpg

4)所以得到相对地址就是0x0000000100000000 + 0x25D91EC(39686636)= 0x1025D91EC(十六进制转换器),使用dwarfdump尝试还原,如图所示,已经还原到的具体的方法:
image.png

二、工具解析

image.png

image.png

image.png

image.png

image.png

image.png

image.png

在 “错误信息内存地址” 那儿一行行替换

Bugly传送门

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容