调试,一项磨炼人的活(一)---《调试九法》

调试,一项磨炼人的活(一)—《调试九法》

2017年的年末,领导让我做Android平台上,Linux内核的相关的工作。系统极不稳定,涉及大量调试,且每次修改完成代码,都得重新安装ko,重启手机。复杂的代码如同走迷宫一样,让我陷入其中无法出来。每次编译运行步骤繁复又让人痛苦不堪。于是很想知道别人是如何调试一个程序的。就找到了这本《调试九法》。

写程序,什么时候最痛苦?
肯定不是设计的时候,设计的时候有着指点江山豪情。
肯定不是编码的时候,编码的时候充满了创造的兴奋。
也不是测试的时候,测试的时候有着第一次牵恋人的手一般紧张和甜蜜,还有一些收获的喜悦。

那么什么时候最痛苦呢?
最痛苦的就是,程序出问题,需要调试的时候。
如果只是把出错信息放到网上一搜,就找到解决方案的,还不是什么大问题。
问题是那些你的系统独有的,潜伏很久的错误,那你就要做好千里独行的准备了。
这是一段无人走过的路,这是一段布满荆棘的路,没有地图,没有方向,你要凭借少量的线索在黑暗中摸索,像侦探破案一样反复假设,反复尝试,最终找到真相。

好了,下面切入正题,讲《调试九法》这本书。

调试九法

这本书的英文名是《Debugging》还有一个副标题是:
The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems
即,九个不可或缺的法则用来找到最难捉摸的软硬件问题。

所以,书名其实翻译的有些问题。9 rules不应该翻译成“九法”,而应该翻译成“九法则”,因为书中并没有讲到具体的方法,只是讲了一些需要遵循的大的法则。
这里的每个法则都不是独立的,而是在某些时候必须合在一起使用的。就像全力做一件事时,有时候不仅要用手,还要用眼睛和耳朵一样。

这本书总共讲了调试时,需要遵循的九项法则。

  • 规则1:理解系统;
  • 规则2:制造失败;
  • 规则3:不要想,而要看;
  • 规则4:分而治之;
  • 规则5:一次只改一个地方;
  • 规则6:保持审计跟踪;
  • 规则7:检查插头;
  • 规则8:获得全新观点;
  • 规则9:如果你不修复bug,它将依然存在

对我触动最深的是,规则3:不要想,而要看。这真是一条至理名言。我总结成一句话,就是:十个猜想,不如一个验证;十个验证,不如一个观测。调试时,不缺少猜想,而缺少验证,更缺少观测。

其次是,理解系统和获得全新的观点。这两条用孔圣人的话总结,就是“敏而好学,不耻下问”。勤学好问,总是好的。理解系统,相当于勤学;获得全新的观点,相当于好问。

其余的,也很不错,都可以看看,会给你很多启发。

下载链接

这个版本为在kindle上显示,专门做了优化。去除了上面和下面的边框,使横屏显示,两屏刚好显示一页。欢迎使用
https://download.csdn.net/download/quietwave/10569723

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值