2009-07-10/10:14
Turbo C程序的调试
一个程序设计好了以后,通常会有一些错误,查找和修改程序中的错误是令人头痛的事。Turbo C集成开发环境提供了一调试装置,使得这一个工作容易了许多,程序调试达到了编译和运行级。
一、TC消息窗口
使用TC最好的理由之一是它允许用户修改语法错误(编译时)和评估编译器给出的警告。TC将编译器和连接器发出的消息收集到一缓冲区中,然后在消息窗口中显示,这样在访问源代码的同时,还能一下看到这些消息。
现将上面的HELLO.C制造一点语法错误,将第一行包含语句的#去掉,再去掉第五行printf语句中的后引号。现在程序看上去是这样的:
include <stdio.h>
main()
{
printf("Hello, world\n);
}
按CTRL+F9重新编译之。编译窗口将显示有多少错误和警告:应为两个错误,0个警告。
当看见编译窗口中的Press anykey提示时,按空格键,消息窗口立刻被激活,亮条出现在第一个错误或警告上,这时编辑窗口中也会有一亮条---它标志着编译器给出的错误或警告在源代码中的相应位置。
这时可用光标键将消息窗口中的亮条上下移动,注意到编辑窗口中的亮条也随着跟踪源代码中错误发生的位置。如果将亮条置于"compile"上,则编辑器显示文件的最后位置。
如果消息窗口太长看不见,可用左、右光标水平滚动消息,为了一次能够多看点信息,可按F5放大消息窗口。放大后,编辑窗口不可见了,因此不进行错误跟踪。现在,保持分屏模式。
为了改正错误,将消息窗口中的亮条置于第一个错误消息上,回车,光标移到编辑窗口中错误产生处,注意,编辑器状态给出所选消息(这在放大模式下是有用的)改正之。(将第一行拿走的#重新写上)。
当不只一个错误时,可用两种方法来修改下一错误。
第一种方法和前面一样,按F6回到消息窗口选择想修改的下一条消息。
第二种方法不用回到消息窗口,只要按Alt+F8,编译器就会将光标移至消息窗口中列的下一个错误。按Alt+F7可移至前一个错误。
这两种方法各有长短,视情况而定。有时源代码中一个愚蠢的错误把编译弄糊涂了,产生好多消息,这时选择修改第一条消息就使得其余的一些错误消息没有什么意义了,这种情况发生时,使用方法一会方便些,一修改完第一个错误之后回到消息窗口,再滚动到下一个有意义的消息上,选择之。在别的情况下,按Alt+F8会方便得多。
记住,Alt+F7和Alt+F8是热键,TC中无论何时均起作用。因此在消息窗口中按Alt+F8得到的不是当前亮行消息,而是下一个消息(按Enter选择当前消息)。但如果没别的编译消息,Alt+F8就不起作用了。
注:可以如此法选择连接消息,但它们不跟踪源文件。在修改语法错误的过程当中,经常需要增加、删除正文,编辑器是记住的,依然能正确定位错误位置。没有必要记住行号和增加、删除的正文行。