MacOS app崩溃日志解析

(目前只能定位到问题的位置,崩溃原因尚没有明确解析出来,这里先粗略简单步骤写下,后期优化)

想直入主题的直接从“实操:”以下开始看

准备资料:

1.项目archive之后生成的后缀为dSYM的文件

2.后缀为crash的崩溃日志文件(txt可以直接改后缀即可)

能解析的前提是:

dSYM与carsh文件对应的uuid一致(验证方法):(比如dSYM文件名为:诺言.app.dSYM,如果不一致不能正确解析)

dwarfdump --uuid 诺言.app.dSYM

crash的uuid

Binary Images:

0x107692000 - 0x108181adf +com.zjaisino.NuoYan (1.2.4 - 177) ,这里的xxxx即为uuid

------------------------------------------------------------------------------------------

参考链接一:

iOS/Mac OS下的 Crash 崩溃分析(搜“简单的使用方法总结如下:”)

http://www.kobeluo.com/tech/2017/11/16/crashAnalysis/

步骤即:

1.找到crash文件相应版本号下的dSYM文件

2.下载相应.crash文件,并打开。

3.找到.crash文件顶部信息中的CodeType并记录,它包含ARM-64, ARM, x86-64, or x86.

4.在.crash文件中搜索Binary Images:,并记下你的包对应的 loadAddress

loadAddress也可以通过计算得到,等于(symbolicateAddress转10进制 - 偏移量)再转16进制,

loadAddress的后三位通常都是000,如果不是,则可能计算有误。

5.终端cd到 dSYM文件package contents下的DWARF目录

6.执行: atos -arch x86_64 -o appNameInDWARF -l loadAddress symbolicateAdress

(备注:

崩溃文件后缀如果不是.crash改为.crash

.crash和对应的dSYM放到同一文件夹下

然后终端cd到此目录下

上边链接里边命令写的symbolicateAdress对应的地址可以搜com.zjaisino.NuoYan后边对应16位16进制的地址,然后用那个地址替换symbolicateAdress

---------------------------------------------------------------------------------------------

参考链接二:

Mac OS App崩溃日志解析方法(搜x86,查看操作步骤)

https://www.jianshu.com/p/ebe0c37e5e1c

首先找到崩溃的地址。例如:

7  TheElements                0x0000000109ae552a 0x109ae3000 + 9514

----------------------------------------------------------------------------------------------------------------------------

通过atos符号化Crash Report

atos -arch x86_64 -o /Contents/Resources/DWARF/ -l 0x109ae3000 0x0000000109ae552a

实操:

找到崩溃日志里的:

Binary Images:

0x1035e8000 - 0x1040e3fff +com.zjaisino.NuoYan (1.2.5 - 1.2.5.9) <618D3DF7-F820-3121-8284-13DF7C08E6C0> /var/folders/*/诺言 3.app/Contents/MacOS/诺言

这里边的0x1035e8000就是loadAddress

2   com.zjaisino.NuoYan 0x000000010377ac7e 0x1035e8000 + 1649790)

这里的0x000000010377ac7e就是symbolicateAdress

----------------------------------------------------------------------------------------------------------------------------

实践终端效果:

$ ~ % cd /Users/liushengnan/Desktop/Mac崩溃解析 

$ Mac崩溃解析 % dwarfdump --uuid 诺言.app.dSYM

UUID: 618D3DF7-F820-3121-8284-13DF7C08E6C0 (x86_64) 诺言.app.dSYM/Contents/Resources/DWARF/诺言

$ Mac崩溃解析 % cd /Users/liushengnan/Desktop/Mac崩溃解析/诺言.app.dSYM/Contents/Resources/DWARF

$ DWARF % atos -arch x86_64 -o 诺言 -l 0x1035e8000 0x000000010377ac7e

__36-[DDAPISchedule registerTimeoutApi:]_block_invoke (in ) (DDAPISchedule.m:113)

你可能感兴趣的:(MacOS app崩溃日志解析)