当前位置 博文首页 > 让代码改变世界:程序调试的一般思路

    让代码改变世界:程序调试的一般思路

    作者:[db:作者] 时间:2021-07-10 18:53

    每个程序员的很多时间都在和bug打交道,而debug的过程总不那么令人高兴。本人在调试过程中总结了几点调试程序的一般方法,写出来和大家分享,能力有限,欢迎各位大神批评指正!

    1.单步调试

    从问题程序的起点开始,单步执行程序观察变量的变化过程,是最基本的程序调试方法。这种方法适合错误定位范围较小的程序,并且要求我们知道正确的变量值应该怎样变化,通过对比当前值和理论值来发现错误的代码点。

    2.断点即条件断点

    在程序中设置断点,观察断点处的变量值也是一种常用的调试方法。断点用于快速排除正确的程序,缩小错误代码范围。比如在迭代类程序中,有时出错点在多次循环之中的某一步,我们可以通过条件断点来跳过前面的n次正常循环。我们一般先用断点缩小错误范围,再用第一种方法逐步检查代码。二者也可以交叉使用。

    3.生成日志文件

    在比较大的程序中,为了以后的维护方便,一般会对重要的变量生成日志文件,我们也可以针对我们的调试生成日志文件。通过查看日志文件来确定出错点,这个方法适合调试变量多,调试范围长的程序。缺点是代价比较大,要编写日志生成代码。

    3.边界条件的检查

    很多边界条件是程序的死穴,数组读取越界、下标范围的错位、循环的边界条件有误、特殊的输入值没有特殊处理等等问题都是边界问题。我们在程序设计时也要注意对边界条件的考虑,因为这往往是程序员最容易忽略的地方。

    4.缩小规模检查算法

    实际编码过程中,我们的算法很多时候是不成熟的,没有经过仔细的数学推导。所以调试程序有一定的试探性,这个时候我们为了验证思路的正确性,要举一个小的例子来验证程序的算法是否正确。

    调试能力的养成不是一朝一夕的,只有平时多动手,多思考,在实践中不断摸索,我们的调试能力才会有所长进。最后再说一点心态问题,和大家共勉:无论是code还是debug,都是一个劳神的过程,长期高负荷工作会耗费我们的精力而影响我们的心情,所以要尽量保证健康生活习惯,充足的精力是我们构思编码、调试程序的基础。

    cs