编者按:纠错先要查错。查错的工作量通常占整个纠错的十分之九以上。所谓纠错技术,主要是指查明程序错误时可能采用的工具和手段。这些手段如果运用得当,能明显的提高查错的效率。

1.插入打印语句

在程序中插入暂时性的打印语句,是一种十分常见的查错技术。这类打印语句的作用主要是显示程序的中间结果或有关变量的内容。插入打印适用于任何高级语言书写的程序。但其输出与程序的原输出夹杂在一起,需要注意分辩。此外,纠错结束后必须记住将它们删除。

2.设置断点

查错的基本技术之一,是在程序的可疑区设置断点。每当程序执行到设置的断点时,会暂停执行,以便纠错者观察变量内容和分析程序的运行状况。

3.掩蔽部分程序

对可疑程序进行检查时,常常要让程序反复执行。如果整个程序较长,可疑区仅占其中的一小部分,则每次运行整个程序,必将浪费许多时间和精力。在这种情况下,明智的作法是把不需要检查的程序掩蔽起来,只让可疑的部分程序反复运行。

掩蔽无关程序可使用下述方法:

(1)在要掩蔽的语句行加上注释符,使解释或编译程序把它们当作注释行,不予处理。

(2)把要掩蔽的程序段置入一个“常假”的选择结构中,使它总没有机会执行。

(3)用GOTO语句跳越要掩蔽的程序段

无论使用哪一种掩蔽方法,纠错结束后都应撤销掩蔽,使程序复原。

4.蛮力纠错技术(Dubugging by Brute Force)

某些系统或调试程序能提供一种“转储”命令(DUMP),用来打印出内存可疑区或输出文件的全部内容,供纠错者分析使用。这种作法的优点是信息齐全,只要有耐心,总可以找出问题。但输出的数据量大,从中寻找错误的迹象好比大海捞针,效率很低。如果说前3种技术都重视分析与错误有关的信息,DUMP命令却不论数据与错误有无关联,一律拿出来“曝光”。所以有些文献称之为蛮力纠错,仅在程序很小或其他纠错手段未能奏效时才使用这种方法。