程序的调试

Author: 河北 袁津生 Date: 1992-05-08

        一、错误的种类
        (1)问题定义错。在设计中由于对问题理解不清或理解错误;或者原来的理解是正确的.但因多次修改发生了错误。
        (2)功能错。问题定义错将导致功能错.但问题定义没错而功能发生编差也是常有的。
        (3)界面信息错。模块之间有信息的传递、数据的交换.如果界面设计不当会引起异常。例如.形参与实参个数、类型、次序不匹配;内存变量的属性设计不当等等。
        (4)编码错。即语法规范错、函数定义哉值使用错等。尤其应当研究一般书籍中没有介绍的命令和函数的特点。
        从另一个角度也可以反程序的错误分为静态错和动态错。静态错比较直观.容易发现.如语法错、变量错等等。动态错是程序运行过程中发生的错误.这类错误是较难预料的。较好的方法是上机试运行.并检查程序运行的中间结果.设法发现错误。
        二、调试的方法
        对于一个程序的调试方法一般可以分为如下几点:
        (1)、断点输出
        在程序中插入临时输出语句.观察某些中间结果.以便判断错误。
        (2)分析执行命令的显示(打印)信息。
        (3)单步工作方式
        用命令设定计算机为单步工作方式.执行一条命令停下.按任一键再继续。
        (4)程序跟踪
        一般说来.设置跟踪有两个作用:一是查找出错点;二是查程序的走向和执行过程。这对于分析程序的逻辑错误是很有效的。
        (5)记录调试过程。
        (6)查看现场(中断点)
        三、错误的分析
        当含有错误的程序上机运行时可能出现两种情况:一是显示出错信息.程序不能执行到底;二是程序能执行到底.但结果是错误的。
        (1)错误信息分析
        运行程序时.系统对程序中的语句做语法检查。若发现错误.则在屏幕上显示出错信息.分析这些信息就会尽快找到错误。
        (2)程序逻辑错误的分析
        错误信息的分析能找到程序的静态错误.若程序中有逻辑错误或程序运行错误.若程序中有逻辑错误或程序运行错误.程序可能运行到底.但结果是不对的.对于这种情况只能靠分析程序的输出查找错误。
        程序的运行错误是指程序执行的先后次序有错或程序的执行次数错。
        所以.查找程序逻辑错误的有效办法是由出错数据所在记录、字段来分析程序结果。