程序设计和调试中的几点总结[9]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 fatapple 的 blog

除了定位错误之外还要改正错误,当然我前面讲的方法大都是改正错误,但是最有效的就是看编译器给你的提示信息。这是我们查找错误的出发点,其中的一些小错误很容易就能看出来,比如:变量没有声明,在 else 前加了 ,类型不对应,函数参数传递错误等。而有一些错误是从信息中看不出来的,语法的错误不太难纠正,但是算法的错误就不好纠正了。这就要求我们用调试工具来一步步找出错误。其中最常用到的工具就是断点、单步进入、单步跳出,以及 观察变量。断点可以帮助我们将程序分段,看一看到底是在那一部分出了错,以便于查找。不过在调试完毕以后一定要记着把断点都清除掉,不然你的程序会在运行时突然中断,而你也查不出错。我个人比较爱用的是单步进入+单步跳出+add watch 这是调试程序的一个必由之路。写程序并不难,调试程序的高手才是很有本事的人,我一向是这么认为。单步进入 就是一步一步的调试,边解释边运行,这样便于我们找到错误。单步跳出 是为了帮助单步进入的,单步跳出对于一个过程或者是一个函数是将其看成一条语句,一下子跳过去,这样节省了那些正确的部分的检查。也可以用 运行到光标处这一项,两者都是缩短正确的程序段的检查时间。 add watch 是一个非常好用的东东,你可以在里面加入你想要监视的变量名称。则该变量的值会在表中显示出来,他配合单步操作,可以看见你想要知道的变量在每一步的变化情况是否和预料的一样变化。如果有出入则可以对该语句进行分析,从而找出出错的原因。可见单步操作+add watch 是调试程序必不可少的步骤,也是最有效的方法。但是,在程序比较复杂,调用函数比较多的时候,单步进入就不是那么好用了。因为往往在一个按钮事件中有用到好几个procedure 或者 function ,在每一个function或者procedure中往往又要调用别的function procedure。所以用单步进入很容易让人搞的晕头转向,不知所云。假如用到了第三方的控件,那就更不知道程序运行到什么地方了。所以,在程序量比较大,而且调用函数比较多的地方,单步操作就不太好用了。这时我们最好使用断点工具,他使用的意义和单步操作的意义是一样的,就是为了看清楚程序是否按我们所设计的思路在运行。断点的好处就是在于他可以使我们在希望停止的地方暂停,而其余不需要停止的地方则按原来的速率进行运行。结合add watch,我们就可以看见整个程序运行的过程了。断点的增加是比较有讲究的,一般情况下都要在以下几个地方加上断点: 循环语句的入口处,在此处加上断点可以监视进入循环的数据,看看是否在循环以前就有错误。在每个循环前放一个就象作一个备份一样,看看会出什么样的结果。 

本文关键:调试 Delphi
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top