📄 52.htm
字号:
┃ 退出编辑
┃ Ctrl+KQ <br>
━━━┻━━━━━━━━━┻━━━━━━━━━━━━━
</p>
<p> Turbo C 程序的调试 </p>
<p> 一个程序设计好了以后,
通常会有一些错误,
查找和修改程序中的错误是令 <br>
人头痛的事。Turbo C集成开发环境提供了一调试装置,
使得这一个工作容易了 <br>
许多, 程序调试达到了编译和运行级。 </p>
<p> 一、TC消息窗口 </p>
<p> 使用TC最好的理由之一是它允许用户修改语法错误(编译时)
和评估编译器给 <br>
出的警告。TC将编译器和连接器发出的消息收集到一缓冲区中,
然后在消息窗口 <br>
中显示, 这样在访问源代码的同时,
还能一下看到这些消息。 <br>
现将上面的HELLO.C制造一点语法错误,
将第一行包含语句的#去掉, 再去掉 <br>
第五行printf语句中的后引号。现在程序看上去是这样的:
<br>
include <stdio.h> <br>
main() <br>
{ <br>
printf("Hello, world\n); <br>
} <br>
按CTRL+F9重新编译之。编译窗口将显示有多少错误和警告:
应为两个错误, 0个 <br>
警告。 <br>
当看见编译窗口中的Press
anykey提示时, 按空格键,
消息窗口立刻被激活, <br>
亮条出现在第一个错误或警告上,
这时编辑窗口中也会有一亮条---
它标志着编 <br>
译器给出的错误或警告在源代码中的相应位置。
<br>
这时可用光标键将消息窗口中的亮条上下移动,
注意到编辑窗口中的亮条也 <br>
随着跟踪源代码中错误发生的位置。如果将亮条置于"compile"上,
则编辑器显 <br>
示文件的最后位置。 <br>
如果消息窗口太长看不见,
可用左、右光标水平滚动消息,
为了一次能够多 <br>
看点信息, 可按F5放大消息窗口。放大后,
编辑窗口不可见了, 因此不进行错误 <br>
跟踪。现在, 保持分屏模式。 <br>
为了改正错误,
将消息窗口中的亮条置于第一个错误消息上,
回车, 光标移 <br>
到编辑窗口中错误产生处, 注意,
编辑器状态给出所选消息(
这在放大模式下是 <br>
有用的)改正之。(将第一行拿走的#重新写上)。
<br>
当不只一个错误时,
可用两种方法来修改下一错误。 <br>
第一种方法和前面一样, 按F6回到消息窗口选择想修改的下一条消息。
<br>
第二种方法不用回到消息窗口, 只要按Alt+F8,
编译器就会将光标移至消息 <br>
窗口中列的下一个错误。按Alt+F7可移至前一个错误。
<br>
这两种方法各有长短,
视情况而定。有时源代码中一个愚蠢的错误把编译弄
<br>
糊涂了, 产生好多消息,
这时选择修改第一条消息就使得其余的一些错误消息没
<br>
有什么意义了, 这种情况发生时,
使用方法一会方便些,
一修改完第一个错误之 <br>
后回到消息窗口,
再滚动到下一个有意义的消息上,
选择之。在别的情况下, 按 <br>
Alt+F8会方便得多。 <br>
记住, Alt+F7和Alt+F8是热键, TC中无论何时均起作用。因此在消息窗口中
<br>
按Alt+F8得到的不是当前亮行消息,
而是下一个消息(按Enter选择当前消息)。 <br>
但如果没别的编译消息, Alt+F8就不起作用了。
<br>
注: 可以如此法选择连接消息,
但它们不跟踪源文件。在修改语法错误的过
<br>
程当中, 经常需要增加、删除正文,
编辑器是记住的,
依然能正确定位错误位置。 <br>
没有必要记住行号和增加、删除的正文行。
</p>
<p> 二、Turbo C集成调试器 </p>
<p>
一旦修改好语法错误之后程序编译就没什么问题了,
但还是可能不按要求运 <br>
行, 因为可能有逻辑错误(运行错误)。这种错误跟踪就无助于发现错误位置了。
<br>
TC有一个集成调试器可以跟踪运行错误。通过调试器可以运行,
在断点处暂停, <br>
检查变量的值, 甚至可以改变之,
以看程序会有什么反应。 <br>
Turbo C集成调试器是源程序级的调试器,
即用同你编写程序一样的" 语言" <br>
来控制调试器。例如,
为了显示数组中的一个元素的值,
可告诉调试器显示这样 <br>
的表达式的值: <br>
Ctrl+F4 Debug/Eavluate
计算表达式, 允许修改变量的值。 <br>
Debug/Find Function
查找函数定义, 显示在编辑窗口中。 仅 <br>
在调试时才有效。 <br>
Ctrl+F3 Debug/Call Stack
显示调用栈, 可显示任何函数的当前执 <br>
行位置, 其方法是在调用栈中选择相应的 <br>
函数名。仅在调试时有效。 <br>
Debug/Source Debugging
控制是否允许调试: 置为On时, 集成调 <br>
试器和单独调试器均可用 ; 置为 <br>
Standalone时, 只能用单独调试器 <br>
调试, 虽然还能在TC中运行; 置为 <br>
None时, 在.EXE文件不置调试信息, <br>
两种调试均不能调试。 <br>
Ctrl+F4 Break/Watch/Add Watch
增加一监视表达式。 <br>
Break/Watch/Delete Watch
删除一监视表达式。 <br>
Break/Watch/Edit
编辑一监视表达式。 <br>
Break/Watch/Remove All
删除所有监视表达式。 <br>
Watches <br>
Ctrl+F8 Break/Watch/Toggle
设置或清除光标所在行的断点。 <br>
Breakpoint <br>
Break/Watch/Clear
删除程序中所有断点。 <br>
Breakpoint <br>
Break/Watch/Next
显示下一断点 <br>
Breakpoint <br>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
</p>
<p>
表3. 调试器菜单命令及其热键 <br>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<br>
热键
菜单命令
功能 <br>
───────────────────────────────────
<br>
F5
在整屏和分屏之间放大缩小活动窗口。 <br>
Alt+F5
将显示转到用户屏, 击任意键返回。 <br>
F6
在编辑窗口与监视窗口或消息窗口间 <br>
切换。 <br>
Alt+F6
若编辑窗口是活动的, 转到最近一次 <br>
装入编辑器的文件; 若下面窗口是活 <br>
动的, 则在监视窗口和消息窗口间切换。 <br>
Ctrl+F9 Run/Run
调试运行或不调试运行程序, 必要时 <br>
编译、连接源文件, 若编译、 连接时 <br>
Debug/Source Debuging和O/C/C/OBJ <br>
Debug Information为On, 则运行程序 <br>
到断点或程序末尾。 <br>
Project/Remove Messages
删除消息窗口中的内容。 <br>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -