crash

作者: xiari1991 | 来源:发表于2017-12-13 21:35 被阅读5次

    iOS Crash文件的解析(一)
    教你如何对ios崩溃(crash)日志做符号化
    IOS本地日志记录解决方案
    友盟统计错误分析,定位到项目具体位置

    注意:日志统计只用一种,因为多种的话可能相互拦截。

    SIGABRT出现的原因:
    
    1.越界
    2.assert
    3.重复释放
    4.找不到对应的方法
    
    1.我们需要将 xx.app 和 xx.app.dSYM 文件找出来,放到一个文件中.
    2.进入上述文件。
    3.找到crash的地址。
    4.输入命令 xcrun atos -arch arm64 -o xxxx.app/xxxx 0x10019bc48
    - 其中 arm64是CPU Type;
    - xxxx对应的是你的工程名,也就是上文友盟错误报告图片中打红色马赛克的部分;
    - 0x10019bc48 是错误代码的地址,也就是上文友盟错误报告图片中淡绿色的那个内存地址。
    
    注意:每编译一次,.app和.dSYM不会重新生成,所以要查看crash原因,要保存好crash对应的.app和.dSYM。
    
    根据.dSYM、.app、crash.crash符号化crash
    
    1. 将.dSYM、.app、crash.crash放到同一个文件夹下。
    2. grep "AppName arm" *crash
        - crash1.crash:0x100040000 - 0x100e23fff +AppName arm64  /var/containers/Bundle/Application/55A4D641-847F-4D24-86E1-129B28461858/AppName.app/AppName
        - 其中0x100040000是加载地址(loadingAddress), 而arm64、armv7 是 architecture 的值(architectureValue),这两个值后面都要用。
    
    3. xcrun atos -o appName.app.dSYM/Contents/Resources/DWARF/appName -l loadingAddress -arch architectureValue
        如:xcrun atos -o AppName.app.dSYM/Contents/Resources/DWARF/AppName -l 0x100040000 -arch arm64
    
    4. 输入crash函数地址
    

    相关文章

      网友评论

          本文标题:crash

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