解析iOS崩溃日志

来源:转载


在常规的的log日志下能分析很多crash,那么问题来了。分发测试或者上线了的包怎么抓取和分析crash。常规的解决方案,假如测试人员在身边可以在崩溃后连接电脑 打开Xcode 选择Window->Devices 选择你的iphone,进行查看崩溃日志。上线的或者手机不在身边的可以选择用友盟统计获取崩溃信息。以下是我解析崩溃日志的一些经验,用于准确定位崩溃点。



crash1.png


从crash1图可以从堆栈信息定位出崩溃的函数



crash2.png


然而像crash2这样的不能准确定位数组越界的函数就需要通过dSYM文件分析定位了。
请关注其中一行信息



log1.png


它指出了应用名称,崩溃时的调用方法的地址,文件的地址以及方法所在的行的位置(具体请看这篇文章),接下来就要符号化(Symbolication)这句,用dwarfdump来检测crash log中dSYM UUID和本地的dSYM文件是否匹配
打开终端找到你打包的Xcode路径下的dSYM



commond1.png

找到crash log中的dSYM UUID与本地的dYSM相匹配的文件
命令 dwarfdump -- uuid appName.app.dSYM(uuid 后面是相对路径 若此时你不是在dSYMsl路径下需补全为绝对路径)



commond2.png


从log日志中找到对应的 CPU Type: arm64 执行分析命令



commond3.png

dwarfdump --arch=armv7 --lookup 0x10009e424
命令后面也是相对路径(非当前路径下需替换为绝对路径)
下面看下分析结果



result.png

AT_name、Line table dir :、Line table file 能准确定位路径、文件、行数、方法


注意:如果发现warning: unsupported file type:错误,这个问题是因为有文件或者目录的名称中包含空格,比如:2016-08-17/appname 8-17 6.19 ,所以,需要转义一下:2016-08-17/appname/ 8-17/ 6.19/ PM.xcarchive
好了先到这了,该睡了^-^




分享给朋友:
您可能感兴趣的文章:
随机阅读: