iOS - 知道app内存地址,如何定位到代码的位置么
2015-08-31 本文已影响1909人
WhoJun
大家都用友盟,shareSDK,蒲公英等工具记录 crash 信息。
有些crash是一看就知道错误位置,也是有提示的。
有些实在是看不懂是什么意思。
以下用的是堆栈还原。
例如:
27 xxx 0x000000010013265c 0x10007c000 747100
这什么玩意?你看得懂?
那么苹果他只带的查看工具,就是用命令行查看地址位置。
获取自己发布的.app文件。这个不难吧。
把他放到桌面或者你比较好读取的地方。我喜欢放在桌面比较方便。
在10.10.x苹果把symbolicate集成到命令行里面去了。
把命令行的目录cd到.app文件的根目录去。
最后一步确认 .app的版本是你crash出来的版本。如果不是是查不了的。
如果不确定可以根据.app的uuid来确认版本是否匹配。
在命令行输入:
atos -arch arm64 -o <appName>.app/<appName> <地址>
提示如下:
ljjun$ atos -arch arm64 -o xxx.app/xxx 0x000000010013265c
-[WJDefine storeInDictionary:] (in xxx) (WJDefine.m:317)
还有这些都是辅助效果,有些蛋疼的崩溃信息,靠这些还是不能测出来的。这样只是让你更可读。
还是要靠自己的分析。
最近在用腾讯出的 Bugly 分析,里面有详细介绍crash 捕获解析的完整过程视频,有兴趣可以看看。