用屏蔽法找bug的总结

总结

今天用屏蔽法找bug吃亏了。

bug描述:有一个上下文类,在上下文中的内容都丢在里面。本来是在找内存泄漏,没想到,当这个类不用时,去删除它,每次都崩溃。那就不能先去找内存泄漏了,先得将崩溃问题搞定。

以前,这个cm的其他版本出现过类似问题,是将此类的成员变量写冒了,覆盖了其他成员变量,导致删除时报错。 我很自然的就想用屏蔽法,从底下往上屏蔽,如果真是和上次一样,是写冒了引起的。应该很快能屏蔽出不崩溃的情况。

整了10几,20次,还是没有屏蔽出不崩溃的情况。

没折了,还是自顶向下屏蔽吧。
这下可好,除了new这个类,删这个类指针的代码,屏蔽了所有其他代码,还是报错。
再去看删除这个类用的宏,原来是delete[] p. new一个类,不是一个类数组,必须要用delete p, 而不能是delete[] p. 否则崩溃。

这bug以前修复过,不知道咋的,可能这个工程比较早,这个bug没修复,也可能同事在现场修复后,没提交到这个svn分支。

吃亏了,用了一个下午。

看来屏蔽法,还是要自顶向下。在流程分支上用2分法屏蔽,很快就能定位到问题代码块,然后再去分析调试。想当然的屏蔽,太浪费时间了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值