利用友盟统计到的错误报告定位错误代码位置


原文章地址:http://www.jianshu.com/p/17fd659df460?open_source=weibo_search


加入友盟统计功能后,友盟后台会有一个错误分析的统计项,点进去之后可以查看项目的错误报告。对于开发人员来说,查看报告不是最终目的,找到错误的原因才是最终目的。如何通过这堆报告定位到错误的代码呢?早上查了好些资料,终于成功了。

我们先看一下错误报告是什么样的:

972702-6dfd8bd57dd69686.png

友盟错误报告

这份报告所包含的主要信息有:

1、首行是错误的原因。显而易见,以上的错误是由于数组越界了。

2、打红色马赛克的地方是你的工程名字。

3、红色马赛克之间有一个淡绿色的地址,这就是错误代码的位置。

4 dSYM UUID,这个是dSYM文件的唯一标识。dSYM 是保存 16 进制函数地址映射信息的中转文件,我们调试的 symbols 都会包含在这个文件中,并且每次编译项目的时候都会生成一个新的 dSYM 文件。

5CPU Type. 定位错误的时候,我们也需要用到这个参数。

定位错误代码,我们需要将 xx.app xx.app.dSYM 文件找出来.

1、在Windows->Organizer->archivers可以看到你的每一次的打包。然后选择你要查看的错误报告所在的版本,这个一定要选对了。

972702-fa3a73e6bec3949d.png

查找所有的archivers

972702-ad39ea4e31278a38.png

选择你的错误报告所对应的包


找到对应的包后,点击右键,然后选择Show in Finder的选项,查看这个包中的内容,如图

972702-64d9d1c198c9de77.png

archivers

再右键选择显示包内容,这时我们看到 dSYMsProductsSCMBlueprint三个文件夹,我们需要用到的是前两个文件夹

972702-557f6a6301adf874.png

dSYMs文件夹

972702-904a819cc51d2c3a.png

Products文件夹

此时,将这俩文件夹中最里层的文件都取出来,放到一个新的文件夹中

972702-8e0ebce72861573b.png

将俩文件放到新的文件夹中

2.打开终端,cd到刚才新建的文件夹(错误报告)的目录下

输入命令xcrun atos -arch arm64 -o xxxx.app/xxxx 0x10019bc48

其中 arm64CPU Type

xxxx对应的是你的工程名,也就是上文友盟错误报告图片中打红色马赛克的部分;

0x10019bc48 是错误代码的地址,也就是上文友盟错误报告图片中淡绿色的那个内存地址。

972702-a684e685466a45c0.png

定位错误代码

其中-[SubscribeViewController isSubcribeSuccess:] (in woshiPM) (SubscribeViewController.m:342)就是错误代码的位置,在SubscribeViewController.m中的isSubcribeSuccess方法中,342是代码所在的行数。

这样就可以在你的工程中找到相应的代码去做修改了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值