1.6.5 程序的跟踪调试
一般来说,编译和连接中的错误比较容易查找和修改,要查找运行中的错误相对困难一些。为了提高查找错误的效率,一方面要提高阅读程序的能力,另一方面要掌握跟踪调试程序的方法。
跟踪调试是指程序在运行过程中的调试。它的基本原理是通过单步执行程序,分析和观察程序执行过程中数据和程序执行流程的变化,从而查找出错误的原因和位置。跟踪调试有两种方法:一种是传统方法,在程序中直接设置断点(例如使用 getch()函数)、输出重要变量的内容等来分析和掌握程序的运行情况;另一种是利用Turbo C集成环境中的分步执行、断点设置和显示变量内容等功能对程序进行跟踪。
在Turbo C集成环境中的跟踪调试主要是通过使用Run、Debug和Break/Watch 3个菜单中的命令来实现的。
1.菜单Run
菜单Run中的命令负责跟踪程序代码。常用的跟踪调试命令有:
(1)Run/Go to cursor(执行到当前光标位置)命令或按<F4>键:执行此命令使程序执行到光标所在处暂停,程序处于跟踪调试状态,且有亮条显示在暂停处。
(2)Run/Trace into(跟踪)命令或按<F7>键:此命令用于单步执行程序,即每执行一次该命令,仅执行程序的一条语句就暂停,程序处于跟踪状态。
(3)Run/Step over(步进)命令或按<F8>键:该命令的功能与跟踪命令类似,只是在对函数调用的处理方法上有所不同。该命令不转入被调用的函数内部,直接执行到源程序中函数调用的下一语句行。
2.菜单Debug
菜单Debug中的命令可以计算和显示表达式的值,还可以为变量临时赋一个新值,以便调试进行下去。常用的跟踪调试命令如下。
(1)Break/watch/Toggle breakpoint(设置断点)命令或按<Ctrl-F8>键:该命令的作用可以使程序分段运行。如果在程序中的某个语句处设置了断点,在使用Run菜单中的命令时,就会在断点处停下来。这时可以使用其他调试手段进行程序的调试。
(2)Break/watch/Add watch(设置观察对象)命令或按<Ctrl-F7>键:执行该命令可以设置要观察的变量或表达式,这些变量或表达式的值在程序的调试过程中将显示在屏幕下方的信息窗口中。
3.菜单Break/Watch
菜单 Break/Watch 中的命令可以设置程序断点、增加监视表达式,以便随时显示某个变量或表达式的值。
当程序运行到断点处时,可用Debug/Evaluate(变量查看及修改)命令或按<Ctrl-F4>键查看变量或其他数据项的内容。执行该命令时,屏幕上弹出一个窗口,窗口分为3栏:最上面是设置(Evaluate)栏,用于输入要查看的变量名或表达式;中间是结果(Result)栏,用于显示要查看的变量或表达式的值;最下方是修改(New value)栏,用于修改变量的值。
提示
C程序的上机步骤如下:
如果编译或连接过程中有错,则需修改源程序,重新进行编译、连接和运行,直到得到正确的结果。
在程序的调试过程中,要注意使用动态跟踪调试技术,以便提高调试程序的效率。