dsym 文件是打包时生成的文件,文件内容是app的各个方法对应的16进制的地址。
而fabri 或 友盟的崩溃日志 记载的是,方法的调用栈。因此通过出现bug的调用栈的方法的地址,在dsym 文件中找到对应的方法。
核心命令:
dwarfdump --lookup 0x0007434d-arch arm7 uau1.3.0.app.dSYM
崩溃日志
1.首先查看此崩溃日志的UUID 与 dsym 文件的UUID是否一致
dwarfdump --uuid JoyshowCampus_Compose.app.dSYM
UUID: 206F0449-6889-3C30-A942-495ABF5FD7CC (armv7) JoyshowCampus_Compose.app.dSYM/Contents/Resources/DWARF/JoyshowCampus_Compose
UUID: BF2E7A22-67EE-3FF3-86CF-6107E28F09D2 (arm64) JoyshowCampus_Compose.app.dSYM/Contents/Resources/DWARF/JoyshowCampus_Compose
如果UUID一致,则证明,此崩溃日志可用。进行下一步。
2、之所以要找到这部分,是因为crash log中call tree没办法识别的部分,往往就是自己代码的部分。
我的Crash Log中,分别是这三行
自己的代码段
dwarfdump --lookup0x000000010007528c-arch arm64 uau1.3.0.app.dSYM
打印出的log即可判断出错误的代码处。