码迷,mamicode.com
首页 > 其他好文 > 详细

二分法冒烟调试——编程调试三板斧

时间:2015-03-30 17:47:13      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

有人说好程序是调出来的,且不说这句话是否片面,不可否认的是调试很重要。

调试的目的是找出问题,二分法冒烟调试是定位大片代码问题最简单粗暴,也是非常有效的方式,因为这种调试方法定位错误代码行的时间复杂度是对数阶。

“二分法冒烟调试”这个名字可能会有点让人迷惑。其实很简单,“二分法”概念取自我们常见的“二分法查找”,这个应该无需解释;而“冒烟”则是取自“冒烟测试”,就是不管三七二十一先运行一下看看正常与否。

“二分法冒烟调试”非常适合用于动态语言,如PHP、Javascript,很多时候因为语言的动态特性导致很难定位问题代码。

举个例子:一个项目是基于第三方的 PHP 系统中做定制开发。该系统定义了自己的模板机制,模板中可以嵌套 PHP 代码。而一个几百行代码的模板文件中的某一行有错,但错误信息只能定位到文件。

这时候二分法冒烟调试就可以登场了:

  • 首先把这个文件拦腰剪走一半代码,刷新浏览器,有错吗?
  • 有,剪走剩下的代码的一半代码,也就是总代码的1/4,刷新浏览器,有错吗?
  • 没错,就说明至少刚删掉的那些代码中有问题。
  • 剪走现有正常的代码把刚才剪掉代码的一半粘回来,刷新浏览器,有错吗?
  • ……
  • 如此反复,基本3~5次就能定位到错误了。

步骤看似麻烦,其实非常省时省力。用这个方法可以先定位错误代码,再分析错误原因。

二分法的思想在调试中还有很多变形用法,今天时间有限就不细谈了,以后如果有时间的话再补充吧。

二分法冒烟调试——编程调试三板斧

标签:

原文地址:http://www.cnblogs.com/bemxself/p/4378288.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!