解析iOS崩溃日志

作者: 风语随风 | 来源:发表于2016-08-19 00:30 被阅读306次

    在常规的的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
    好了先到这了,该睡了-

    相关文章

      网友评论

      • 笑谈红尘乱离人:友盟不是有自己的crash分析工具么,为啥你还要搞那么麻烦
        风语随风:@笑谈红尘乱离人 假如运行崩溃到主函数也可以通过此方法定位 :smile:

      本文标题:解析iOS崩溃日志

      本文链接:https://www.haomeiwen.com/subject/wbxbsttx.html