zoukankan      html  css  js  c++  java
  • Xcode崩溃日志分析工具symbolicatecrash用法

    1.什么是symbolicatecrash?

    symbolicatecrash是Xcode自带的一个分析工具,可以通过机器上的崩溃日志和应用的.dSYM文件定位发生崩溃的位置,把crash日志中的一堆地址替换成代码相应位置。

    2.crash现象

    1.当项目上线之后,捕捉线上crash方法之一。

    当拿到手机后看到的device log 是这样的 ,只有crash的函数的地址,没有办法定位到具体问题再哪里。

    我们需要准备:

    1.应用的.dSYM文件(路径:/Users/用户名/Library/Developer/Xcode/Archives)

    2.工具symbolicatecrash:(终端:find /Applications/Xcode.app -name symbolicatecrash -type f  会把symbolicatecrash的路径打印出来,把他复制一个新建文件夹中(例如:CrashReport))

    3.手机中.crash 文件:(Window --> Devices and Simulators --> View Device Logs --- > 右键 export Log)

    把这三个放到新建的文件夹中CrashReport

    终端今天此文件路径:

    cd /Users/wangyan/Desktop/CrashReport

    export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

    ./symbolicatecrash ./*.crash ./*.app.dSYM > symbol.crash(例如: ./symbolicatecrash ./M.crash ./Example.app.dSYM/ > symbol.crash  )

    此时文件夹中会出现 symbol.crash我们认识的crash文件。

    注:

    确定dSYM、app以及crash文件的关系

    每一个xx.app, xxx.app.dSYM文件都拥有相应的uuid,crash文件也有uuid,只有三者uuid一至才表明之三者可以解析出正确的日志文件。
    查看xx.app文件的uuid的方法,在terminal中输入命令:

    dwarfdump --uuid xxx.app/xxx (xxx工程名)

    查看xx.app.dSYM文件的uuid的方法,在terminal中输入命令:

    dwarfdump --uuid xxx.app.dSYM (xxx工程名)

    而.crash的uuid位于,crash日志中的Binary Images:中的第一行尖括号内。如:

    armv7 <8bdeaf1a0b233ac199728c2a0ebb4165>

  • 相关阅读:
    如何在 SQLServer 中启用 xp_cmdshell 等
    强力解决使用node版本管理工具 NVM 出现的问题(找不到 node,或者找不到 npm)
    [啃书] 预告篇
    [啃书] 第5篇
    [啃书] 第4篇
    [啃书] 第3篇
    [啃书] 第2篇
    [啃书] 第1篇
    [前端随笔][Vue] 多级菜单实现思路——组件嵌套
    [算法小练][图][拓扑排序+深度优先搜索] 平板涂色问题
  • 原文地址:https://www.cnblogs.com/miaomiaocat/p/11170672.html
Copyright © 2011-2022 走看看