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

这份报告所包含的主要信息有:
1、首行是错误的原因。显而易见,以上的错误是由于数组越界了。
2、打红色马赛克的地方是你的工程名字。
3、红色马赛克之间有一个淡绿色的地址,这就是错误代码的位置。
4、 dSYM UUID,这个是dSYM文件的唯一标识。dSYM 是保存 16 进制函数地址映射信息的中转文件,我们调试的 symbols 都会包含在这个文件中,并且每次编译项目的时候都会生成一个新的 dSYM 文件。
5、CPU Type. 定位错误的时候,我们也需要用到这个参数。
定位错误代码,我们需要将 xx.app 和 xx.app.dSYM 文件找出来.
1、在Windows->Organizer->archivers可以看到你的每一次的打包。然后选择你要查看的错误报告所在的版本,这个一定要选对了。


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

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


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

2.打开终端,cd到刚才新建的文件夹(错误报告)的目录下
输入命令xcrun atos -arch arm64 -o xxxx.app/xxxx 0x10019bc48
其中 arm64是CPU Type;
xxxx对应的是你的工程名,也就是上文友盟错误报告图片中打红色马赛克的部分;
0x10019bc48 是错误代码的地址,也就是上文友盟错误报告图片中淡绿色的那个内存地址。

其中-[SubscribeViewController isSubcribeSuccess:] (in woshiPM) (SubscribeViewController.m:342)
就是错误代码的位置,在SubscribeViewController.m
中的isSubcribeSuccess
方法中,342是代码所在的行数。
这样就可以在你的工程中找到相应的代码去做修改了。
转自:http://www.jianshu.com/p/17fd659df460?open_source=weibo_search
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性