CrashLog

手动解析CrashLog

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-06 02:54:44
根据 原文 总结 Your 0x000f0846 0xa2000 + 321606 应用崩溃发生在运行时地址0x000f0846,该进程的运行时起始地址是0xa2000,崩溃处距离进程起始地址的偏移量为十进制的321606(对应十六进制为0x4E846)。三者对应关系 0x000f0846 = 0xa2000 + 0x4E846 崩溃堆栈中的起始地址和崩溃地址均为运行时地址,根据虚拟内存偏移量不变原理,只要提供了符号表TEXT段的起始地址,再加上偏移量(这里为0x4E846)就能得到符号表中的堆栈地址,即: 符号表堆栈地址 = 符号表起始地址 + 偏移量 atos提供了另外一种无需计算崩溃地址对应的符号表地址的方式,命令格式如下: $atos -o Your.app.dSYM/Contents/Resources/DWARF/Your -arch armv7 -l 0xa2000 0x000f0846 其中-l选项指定了二进制文件在运行时的起始地址0xa2000(获取方式见Binary Images相关内容),后面跟的是崩溃发生的运行时地址0x000f0846,解析结果和使用计算得到的符号表中崩溃地址一致: -[OBDFirstConnectViewController showOilPricePickerView] (in Your)