iOS开发 -- 分析CrashLog (2) 无dsym文件解crashlog

来源:互联网 发布:iphone4s网络不可用 编辑:程序博客网 时间:2024/06/09 16:37

如果你真心找不到dSYM,那也不用完全绝望,刚才已经说了,crashlog里面没解出来的那行是符号表地址。ipa包里面的可执行文件也会有符号表和对应地址。所以也能解出log来O(∩_∩)O~~

好,咱们试试

这次我们要借住另一个工具,叫atos,在/Applications/Xcode.app/Contents/Developer/usr/bin/atos
/usr/bin/atos

这次我们需要ipa包里面的可执行文件,如果解开ipa包我不说了,迷茫的自己google

atos使用方法是  atos -arch architecture -o binary -l xxx xx  ,其中xxx为段地址,xx为偏移地址

按照习惯,先验证一下UUID,

dwarfdump -u CrashDemo UUID: 6F6C3E53-2D27-3D51-8A5B-65E94476372F (armv7) CrashDemoUUID: 36DBB225-755E-366E-B8B6-8B2F38C767E8 (armv7s) CrashDemoUUID: 4A302375-CA31-35E8-8B45-05A789CDB707 (arm64) CrashDemo


然后:

atos -o CrashDemo -arch armv7 -l 0x94000 0x0009b290


其中 -arch armv7 中的armv7是我手机的,你具体填啥还得更加crashlog里面是啥。


-l 0x94000 0x0009b290
代表的就是crashlog里面对应行的偏移地址和段地址了



运行结果如下。和上一篇文章 iOS开发 -- 分析CrashLog (1) 的方法得到的一模一样 。喜大普奔吧~



ps:此方法依然使用于dsym文件


总结:

1.解crashlog不一定要有dSYM文件。

2.每次注意验证UUID是否对应

3.uuid可能有多个,只要有一个对应上就行

4.atos 同时也适用与dsym文件

5.atos -arch的参数要依据crash文件而定


最后我贴出我写低一个脚本,虽然粗糙,但是应付这种问题还是很省事的 。

Ruby练手 -- iOS CrashLog 解析脚本


关于利用dsym文件解log,请移动步 iOS开发 -- 分析CrashLog (1)


0 0
原创粉丝点击