调试九法》读书笔记
这周我看了《调试九法》这本书。本书提出的九条简单实用的规则,适用于任何软件应用程序和硬件系统,可以帮助软硬件调试工程师检测大多数bug。作者是David J. Agans,资深调试专家,善于解决一些最棘手的调试问题,曾经营计算机系统咨询公司PointSource,任Zydacron公司副总裁,还曾就职于Gould、仙童和DEC等知名企业。
其九大方法如下
1.理解系统
2. 制造失败
3. 不要想,而要看
4. 分而治之
5. 一次只改一个地方
6. 保持审计跟踪
7. 检查插头
8. 获得全新观点
9. 如果你不修复 bug ,它将依然存在
作为一个程序员,我主要关注了其软件程序部分。以下是我的一些体会。
对于“不要想,而要看”,凭空想象,问题可能有几千条原因,而实际的原因只有去看了才能发现。如果观察失败。仅靠猜测某个地方出了问题就修复它,不仅没修复问题还可能把真正问题隐藏起来,还误以为修复了问题。接下来,查看细节,一直观察,直到把问题原因锁定在几种可能之内。把最易解决的问题先查看修复。
特别是在这次个人作业中,很多bug都是想不出来,而是调试出来的,得到很好的应征。
对于“分而治之”,其实就是排除法,逐步逼近,这是调试的核心。首先确定问题范围,逐步逼近缩小搜索范围。再从有问题的一边开始搜索。不要把精力花费在没问题的地方。修复探索过程中的已知bug,最后消除干扰因素。
对于“一次只改一个地方”,类似分离变量法,不要乱改,为验证问题,一次只改一个地方, 隔离关键因素,别改出了其它问题。与正常情况进行比较。这样才能发现问题所在。
当然,我看过这本书后,也有些不尽如人意的地方,希望大家阅读时引起注意,一是因为作向软件,不是很有针对性;二是由于作者是个50后,所以有些现实生活中的例子,我们也不是很熟悉,如唱机问题之类的设备。