谈谈随机crash的问题

28 篇文章 3 订阅
7 篇文章 0 订阅

没有遭遇过软件的随机crash问题的研发人生是不完满的,没有解决过软件随机crash问题的研发人生是有遗憾的!
-------------摘自某某装AC人士笔录!

在一个大型软件里,或是服务器软件,或是嵌入式系统终端软件里,软件crash问题,比比皆是,是个软件开发者必然遭遇过。但是,软件随机crash问题,相遇很难,解决亦难。这里说的随机crash,是会发生在软件运行过程里的不同地方,具体地说,使用GDB追踪几次crash,你会发现每次crash发生得代码文件和行数都不一样。 这就说明,每次追踪得死亡现场都不一样,并且很多时候,发生在malloc 和 free得时候,这就更让人摸不清楚问题得关键所在了。加上,很多得随机crash现象,不能轻易被重现。有时候,运行软件20-30分钟,就出现了;但又时软件跑了8个小时,也没有发生crash。这就让人很抓狂了。

以上描述可以总结出2个规律:
1. 软件随机crash的现场不统一,10次可能发生的地点都不一样;
2. 软件随机crash的发生时机没有规律,不是在固定运行固定时间后就必然发生;

可能的推断:
1. 软件crash发生的现场可能不是第一案发现场;
在第一案发现场的凶手作案后,可能并没有导致软件立即crash掉;
2. 有可能软件运行很长时间,都没有引发导致crash的错误;
这个是由于大型软件的复杂性造成的,每次运行可能软件跑的路径和时序都不大一致,导致有时触发了crash的条件,而有时候有达不到crash条件;

在大型软件系统里,调试随机crash,有几个原则需要注意:
1.  尝试尽量缩小查找错误的代码范围;
从10个软件模块中找bug,和从3个软件模块里找bug,难度是大不一样的;
2. 尝试找到crash必重现的最短路径;
这个有时候,需要经验和运气;
3. 使用必要的辅助测试工具;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值