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

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

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

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

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

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

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

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

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

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

转载于:https://www.cnblogs.com/bemxself/p/4378288.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值