友盟统计错误解析

错误信息:

Application received signal SIGSEGV

错误详情:

错误详情.png

错误分析:

SIGSEGV和SIGBUS一般是由于访问已被释放的内存或者调用不存在的方法所致。

错误定位:

单条错误详情.png

XingYunGlobalMeeting -- 应用名称

0x10020d274 -- 崩溃时的调用方法的16进制函数地址

XingYunGlobalMeeting + 2151028 -- 文件的地址以及方法所在的行的位置

接下来就是本文的重点,将这条“密文”解析成“明文”了。

首先,要找到该项目发布时Archive编译出来的.xcarchive文件。这个文件包含了.DSYM文件,可以通过XCode->菜单栏中的Window->Organizer,打开Archives列表,找到对应的文件,点击右键Show in Finder。

通过Organizer找到.xcarchive文件.png

在Finder中显示.xcarchive文件.png

在Finder里所要的.xcarchive文件.png

打开该文件,选中该文件,点击右键 -> 显示包内容。

xcarchive显示包内容.png

说明:正常的话(该版本只Archive一次的话),包里面dSYMs文件夹里只有一个以项目名称命名的.app.dSYM文件(如上图中的XingYunGlobalMeeting.app.dSYM文件)。如果同一版本重新Archive(即多次Archive)的话,会有多个.dSYM文件,此时我们就要根据友盟错误分析错误详情里的倒数第五行的dSYM UUID确定对应的.dSYM文件。

根据UUID确定对应的.dSYM文件.png

然后就要通过这个文件定位错误信息了,共有三种方法:

方法一:使用xcrun atos命令

【说明:最靠谱!推荐使用该方法,特别是该项目的该版本重复Archive的话(即上一步骤有多个.dSYM文件)的话,下面的两种方法可能不能使用】

1、选中上一步骤确定的对应.dSYM文件,点击右键显示包文件,按照路径->Contents->Resources->DWARF,找到以项目名命名的文件。

显示.dSYM文件中的包文件.png

2、打开终端Terminal,输入 atos -o ,然后把上一步中定位的文件拖入终端,补入文件路径,空格,输入友盟错误详情中单条错误信息里的16进制函数地址(如:0x100037da4)

完整命令:

XingYundeMac-mini:~ xingyun$ atos -o /Users/xingyun/Library/Developer/Xcode/Archives/2017-03-20/XingYunGlobalMeeting\ 2017-3-20\ 下午7.20.xcarchive/dSYMs/D29F668F-D4A2-353E-97DC-CD9BFC78695E.dSYM/Contents/Resources/DWARF/XingYunGlobalMeeting 0x100037da4

3、终端返回我们看得懂得的“明文”错误信息:

__41-[MSSBrowseCollectionViewCell createCell]_block_invoke (in XingYunGlobalMeeting) (MSSBrowseCollectionViewCell.m:37)

发生崩溃的方法:-[MSSBrowseCollectionViewCell createCell]_block_invoke

崩溃所在源码文件:MSSBrowseCollectionViewCell.m

发生崩溃的方法在源文件中的行号:37

方法一atos命令解析错误.png

方法二:使用dwarfdump命令

1、可先将.app.dSYM文件拷贝到一目录下备用,如和崩溃日志放在一个目录下。

2、打开终端,cd到该目录下,执行命令:

$ dwarfdump --arch=arm64 --lookup=[崩溃日志上项目对应的某崩溃地址] [dSYM文件的绝对路径]

方法三:可视化工具dSYMTools

下载链接(源码):https://github.com/answer-huang/dSYMTools

下载后在Xcode中运行,然后按照以下使用步骤进行:

1、将打包发布软件时的xcarchive文件拖入软件窗口内的任意位置(支持多个文件同时拖入,注意:文件名不要包含空格)

2、选中任意一个版本的xcarchive文件,右边会列出该xcarchive文件支持的CPU类型,选中错误对应的CPU类型。

3、对比错误给出的UUID和工具界面中给出的UUID是否一致。

4、将错误地址以及 Slide Address 输入工具的文本框中,点击分析。

dSYMTools.png

方法四:友盟错误分析工具

1、下载错误分析工具

,并解压zip得到umcrashtool文件,可将umcrashtool与已下载的xxx.csv文件放入同一目录下。

2、第二步 在terminal中运行umcrashtool命令,参数为错误分析的.csv文件绝对路径,如下:sanzhang$ ./umcrashtool [absolutely_path_of_csv_file] 将umcrashtool与错误分析.csv文件放入同一目录下

csv文件和umcrashtool放在同一目录下.png

3、在terminal中运行umcrashtool,提示如下: Usage: umcrashtool [export-file-path],定位后的代码及行数会写入错误分析-symbol.csv文件,与原文件在同一目录下。用工具打开新生成的xxx-symbol.csv文件,便可查看错误发生的源码文件及行数。

注:如果错误分析没有成功,请先确保对应的 xxx.dSYM 文件在 ~/Library/Developer/Xcode/ 或该路径的子目录下。(对于每一个产品发布时archive操作会将dsym文件存放到~/Library/Developer/Xcode/Archives路径下,因此建议保留该路径下的文件,以便后续用工具分析错误。)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,425评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,058评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,186评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,848评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,249评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,554评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,830评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,536评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,239评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,505评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,004评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,346评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,999评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,060评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,821评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,574评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,480评论 2 267

推荐阅读更多精彩内容