调试九法

对于调试这一块,我以为是凭借经验的积累而不断改善的,所以对于调试的书籍从来没有关注过,今天休息时间翻开了《调试九法》这本书随便看看了,突然觉得自己以前调试确实犯了好多错误,这里算是给自己一个纠正的开始,习惯是要改变,但不能少了耐心。

1,阅读手册

我做开发之前肯定也是需要阅读手册的,但通常只是找自己关心的地方。然后等到出错了,回过头来再看手册,但是第一印象对我很重要,所以第二次看手册会不觉地去着重看以前有印象的部分,而忽略了其他细节部分,这是很要命的。看手册一定要有耐心,一句一句的进行。因为细节就是解决问题的关键。不要以为其他部分没用,因为整个流程的细节你还不懂。

2,制造失败

当运行代码时会发生间歇性的bug,这是就需要多次制造失败来观察他,这里可不是模拟失败,有时我会猜测失败引发的原因,然后重构代码来模拟bug,虽然有时会成功解决问题,但是这绝不是最合适的方式。仔细思考背后的原理,然后从头开始一点一点进行来引发失败。要认识到“那”是有可能发生的,不要说的那么绝对。因为整个的真正原理你还不懂。通常在调试中,我会把调试正确的代码中的调试语句全部删掉来显的代码的“干净”,这绝不是一个好方法。经过调试正确的代码要做好备份,然后再正式代码中注释掉或者“#ifndef”来屏蔽调试的部分,因为你肯定不知道以后还会不会再次调试。

3,不要想,多看

我喜欢想这个bug出现的原因,我想不少数工程师有这个习惯吧。但是我认为这是最不好的一个了,想永远没有观察来的有效,虽然这可能花的时间会比想时间长很多。如果想找到故障所在,必须要找到足够多的细节然后再判断。找到问题后多实验几次不同的状况,然后才能真正实现稳定性。不要害怕深入研究,因为这才真正解决这一类问题的关键。还有就是不要忽略了外部调试工具的影响,示波器的探针会增加电容,打印语句会影响时间和代码规模。猜测只是为了确定搜索重点目标。然后进行观察。

转载于:https://my.oschina.net/u/2241389/blog/889571

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值