文档章节

一个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
博文 69
码字总数 29698
作品 0
广州
程序员
游戏开发性能优化经验总结

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

拉偶有所依
2015/05/11
857
0
阿里JAVA开发手册零度的思考理解(二)

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

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

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

匠心零度
2017/11/04
0
0
android测试之monkey

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

yangiris
06/26
0
0
讲述Sagit.Framework解决:双向引用导致的IOS内存泄漏(中)- IOS不为人知的Bug

前言: 话说昨晚还是前晚,写了一篇:讲述Sagit.Framework解决:双向引用导致的IOS内存泄漏(上) 文章写到最后时,多了很多莫名奇妙的问题!!! 为了解决了这些莫名奇妙的问题,我又战斗了...

路过秋天
01/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

正弦 余弦 角度 用于画时钟

<html> <head> <title>时钟</title> </head> <style> #canvas{ background: #1977ca } </style>......

一箭落旄头
15分钟前
1
0
drupal7自定义模块之表单(新手向)

前段时间要给网站做个高级搜索的功能,但drupal7自带的搜索远远无法满足需求,便有了自己开发的需求 我以前没有接触过drupal,做这个功能也是困难重重,几乎是从零开始,我将目光放到了自定义模块...

gcudwork
20分钟前
0
0
驰狼课堂

http://www.chilangedu.com/

求是科技
38分钟前
0
0
jumpserver 报错"Incorrect string value

申明 本文所有内容参考自jumpserver记录命令无法入库问题 #1773 简介 jumpserver 1.4.0在jumpserver.log中大量报错,错误日志 File "/opt/jumpserver/apps/terminal/api.py", line 246, i...

zhnxin
44分钟前
2
0
用户管理相关配置文件及命令

9月19日任务 2.27linux和windows互传文件 3.1 用户配置文件和密码配置文件 3.2 用户组管理 3.3 用户管理 扩展知识 实用小工具 简单命令行下实现Linux/Windows文件互传 前提:使用远程工具Xsh...

robertt15
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部