解析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
好了先到这了,该睡了-

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一般情况下,在我们 Archive 完项目后需要保存对应的 dSYM 文件,这样有线上崩溃时,崩溃统计工具并没有明...
    chenyu1520阅读 7,851评论 0 8
  • 本文就捕获iOS Crash、Crash日志组成、Crash日志符号化、异常信息解读、常见的Crash五部分介绍。...
    xukuangbo_阅读 5,507评论 0 0
  • 前言 崩溃是让发人员比较头痛的事情,app崩溃了,说明代码写的有问题,这时如何快速定位到崩溃的地方很重要。调试阶段...
    進无尽阅读 6,308评论 0 9
  • 我总是很生气。 当我爆发的时候,我会发出从刚开始压制自己冷静声音,到慢慢拉长放大音量,然后释放胸腔里的空气怒吼出来...
    卢嘉敏阅读 2,118评论 0 0
  • Flask是一种小框架,小到可以称之为“微框架”。Flask自从被设计时就被设计为可扩展的框架,它包含基础服务,其...
    转身丶即天涯阅读 5,238评论 0 0

友情链接更多精彩内容