MORE CODING,MORE BUG;MORE BUG,MORE HAPPY.
描述:文章以Debug模式为例,收集Crash日志,使用DSYMTools工具分析出引起Crash的具体代码位置。App已经上线App Store,同样方式分析第三方友盟、云测、百度等或自己收集的Crash日志定位具体位置。
环境:XCode11.6
真机:iPhoneX,ios13.5.1
工具:DSYMTools源码 , DSYMTools.app网盘(密码: 6n0b)
问题:定位Crash
一、前提设置:为了方便测试,如图所示,请将Debug Information Format的Debug和Releae两种模式都选定为DWARF with dSYM File。不要忘了哦 image.png
二、在Tabbed App的SecondViewController埋个坑。 image.png
三、Clean工程,在Debug模式下真机运行。终止运行,触发几次坑,APP 直接Crash。收集真机Crash日志,分析堆栈信息。 image.png image.png
四、获取xxx.dSYM文件。打开DSYMTools工具,将xxx.dSYM直接拖入DSYMTools工具面板中。 image.png image.png
四、输入数据
[默认 Slide Address]:替换为步骤三--图2中的16进制值0x102849f14
[错误信息内存地址]:转换计算过程如下
1),将上图中16进制值0x102849f14转换为十进制值4337213204
2),将十进制值4337213204加上上图中十进制值24340,求和为4337237544
3),将求和结果4337237544转换为16进制值0x10284fe28,输入到工具中。
16进制 转换为 十进制
0x102849f14 4337213204
+ 24340 求和
4337237544 0x10284fe28
十进制 转换为 16进制
image.png
网友评论