文档章节

一个crash引发对版本管理备注重要性的思考

gdxz110
 gdxz110
发布于 2015/10/19 08:57
字数 765
阅读 114
收藏 0

    在某个风和日丽的晚上,查看友盟后台时,发现有个app crash发生率特别高。情况如图所示

    SIGSEGV crash一般是引用对象给回收为空,测试了一番,重现了bug,当app进入后台时,app就会挂在GPUImage 某个方法上,这个问题以前没出现过,然后最近手机又更新到ios9,xcode老提示一些莫名奇妙的错误,所以自然会认为是ios9系统的问题,但是这么必现而且常现的问题一定要解决啊,至少也得try catch,有个友好的展示,而不是直接挂掉。测试了其他机子发现跟ios9没关。。。因为其他系统一样出问题。。。

    不过这样也说明是代码层面的问题,问题定位到更准确的范围了。因为挂在GPUImage上,所以一直设断点追踪GPUImage上的对象,没啥结果。。毕竟大牛写的代码,在论坛上问了人,其他人用GPUImage也没遇到这个问题。

    放下这个问题,去做其他东西冷静下,晚上蹲坑的时候,有条线索闪过脑袋,以前没有这个问题,现在出现了,会不会是某个版本更新加了什么东西导致的呢?

    立马回去查看项目更新列表,还好没个版本更新我都备注了更新的功能跟做出的修改,虽然只是写主要的更新功能,但也能在一定程度定位问题。更新列表如图所示:

    

发现20151003之前的版本是木有这个bug的,但后面的版本都有,也就是这两个版本的更新出了问题代码,通过比较,发现加入了友盟统计的功能。然后去掉友盟统计就没有这个bug了。再去翻看友盟统计的文档,发现一句可疑又坑爹的话:

就是这个自动开启的后台统计功能,导致app 进入后台时挂掉,估计是友盟统计进入后台使用了跟GPUImage使用的某些对象一样,然后友盟使用完就释放了,导致GPUImage引用对象为空,最终app crash。

    一个bug引发的血案到此完结,得到的经验,

    1.开发文档要写全,友盟只写了对一般app没有影响,却不具体说明对具体某些类型会产生什么影响以及结果,这里对友盟提出不指名批评,负分滚粗。

    2.项目更新时的文案备注要尽量写清楚,无论大小功能代码的更新都应该尽量清晰,方便日后快速定位问题。

    3.多方面多维度思考问题,在一个方向转一段时间没有结果,就可以尝试休息下,换个状态跟心情再去思考问题,说不定思路就清晰了。

© 著作权归作者所有

共有 人打赏支持
gdxz110
粉丝 7
博文 71
码字总数 29757
作品 0
广州
程序员
私信 提问
android测试之monkey

本文转载自http://www.testwo.com/blog/6188 感谢本文的作者; 一、Monkey test简介 Android的SDK 里面,Monkey的tools是一个命令行工具,当连接Android设备时,只要在命令行里输入相应命令就...

yangiris
2018/06/26
0
0
阿里JAVA开发手册零度的思考理解(二)

简书 匠心零度 转载请注明原创出处,谢谢! 说在前面 人生的大道上默默地走,就必须要有一盏灯亮着为你引导方向!而这盏灯抑或只是一句话,一句鼓励,一个赞美,一次承认,一次认可,一次相识...

匠心零度
2017/11/04
0
0
阿里JAVA开发手册零度的思考理解(二)

转载请注明原创出处,谢谢! 说在前面 人生的大道上默默地走,就必须要有一盏灯亮着为你引导方向!而这盏灯抑或只是一句话,一句鼓励,一个赞美,一次承认,一次认可,一次相识一次交流…… ...

匠心零度
2017/11/04
0
0
游戏开发性能优化经验总结

优化概论 说起游戏的优化,在游戏开发中经常分为这几步: 首先要确定游戏中经常会出现哪些问题 – Profile 然后确定在哪些方向进行性能优化 – Analyze 最后再尽可能将问题逐个解决 – Solv...

拉偶有所依
2015/05/11
868
0
viewDidUnload和dealloc的执行时机

一直对这个没有什么问题,反正就是疯狂的release。但今天发现原来模拟器可以模拟内存不足时的情况,这使我的程序发生了一些错误,同时也让我对这两家伙了解更多。 viewDidUnload 这个只在内存...

Jeans
2012/08/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

第1章

背景:因为最近在考教师资格证,考的是计算机学科,所以学科考的是:信息技术学科知识与教学能力;因此图书馆借了一本书,把最基本的知识看一遍,为之后的笔试和面试做充足的准备。 大学计算...

怪咖先生forever
今天
1
0
element-ui之el-collapse-transition(折叠展开动画)源码解析学习

项目中发现同事使用了element-ui的el-collapse-transition来做折叠展开效果,打开源码看了下发现挺有意思,来解析学习一番。 el-collapse-transition的引入方式 // fade/zoom 等import 'e...

学霸猫
今天
1
0
解释器模式_实战

前言 解释器模式是什么?这个设计模式其实比较冷门,不太会解释,用例子说明把。解释器模式一般用在sql,xml,json解析等场景。比如说你有一个json对象,你要获取这个对象中任意一个节点的值。...

grace_233
今天
6
0
告别2018

今天中午从喵喵家回来之后,倒头就睡到下午4点了。可能是之前透支的身体,在我放松下来后,开始觉得疲惫了,所以最近估计会进入嗜睡期。醒来之后,拿了包花生,开了瓶低糖菊花茶,听着网易云...

七木网络科技
今天
4
0
MySql数据库分表分区实践

1. 背景 —— 公司物联网项目 海量设备通过物联网服务接入云端,设备每30s上报一次自身数据(以下称为动态数据)。 物联网服务将设备上报的数据转发给数据处理网关,由数据入库网关执行批量入...

吴伟祥
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部