手把手教你学C语言
上QQ阅读APP看书,第一时间看更新

3.9 如何用VC++ 6.0调试程序

调试功能是编译器非常重要的功能。它主要用于帮助我们快速地查找程序中的错误,或通过观察程序中变量值、变量地址的变化,使我们对程序的功能有更加深入的理解。如果编译器没有调试功能,那么当程序遇到错误的时候只能靠我们自己查找。而当程序很大或错误很难查找的时候,查错就会是一件很令人头疼的事情。所以没有调试功能的编译器不是一个好的编译器,而如果编译器有调试功能但你不用或不会用,那么真的就太可惜了。下面就来讲一下如何用VC++ 6.0调试程序。因为大家还没有开始学编程,所以下面就不写程序进行举例了,其实就是几个工具的使用。

首先当我们编好程序后,右击工具栏的任意位置,弹出如图3-31所示菜单。

图3-31 工具栏右键菜单

选择“Debug”,将调试工具条打开。如图3-32所示。

图3-32 Debug工具条

这个工具条中有很多工具,我们只要掌握最常用的就行了。这个工具条中现在很多工具都是灰色的,因为还没有开始调试程序,等开始调试后它们就高亮了。那么怎么开始调试程序呢?可以选择其中的两个工具:。它们的区别是, 是从程序开头进行调试,即从主函数main下的第一行开始。而 是从鼠标所在位置开始调试。两种调试方式都可以,更加灵活一点。

单击调试后,VC++ 6.0窗口下就会弹出两个连在一起的窗口,如图3-33所示。

图3-33 变量窗口和Watch窗口

这两个窗口是非常有用的,尤其是右边的窗口。其中左边的窗口叫变量窗口,该窗口显示的是当前语句和前面语句中所使用的变量的值。右边的窗口叫Watch窗口,可看到该窗口下面有Watch1、Watch2、Watch3、Watch4。Watch窗口是非常有用的。因为变量窗口中的变量名经常变,而我们通常都是希望从头到尾观测某个变量的变化,所以只要在Watch窗口的Name下输入该变量名然后回车即可。Watch窗口中可以同时观测多个变量,只要在Name下另起一行输入你想观测的其他变量名即可。

工具条中从左往右第二个工具 的作用是结束调试,如果调试完了就单击这个工具项。但是VC++ 6.0有一个漏洞,就是结束调试后如果对程序进行了修改,那么重新编译时就会出错。原因是虽然结束调试了,但调试时生成的.exe文件还在执行,并没有关掉。那么此时只要按Ctrl+Alt+Delete打开任务管理器,然后单击“进程”,找到这个.exe进程将它关掉就行了。但如果单击“结束进程”都关不掉,那就直接关闭VC++ 6.0,然后重新打开就行了。

工具条后面有三个带箭头的工具,它们从左到右分别是Step Into、Step Over和Step Out。其中用得最多的是中间的Step Over,它的作用是单步执行,即单击一次只执行一行,这样就能一步步跟踪程序是怎么执行的,它的快捷键是F10。

Step Into和Step Out主要用于程序中有函数调用时。Step Into的箭头是往里指,表示进入被调函数。当程序执行到函数调用时,如果单击Step Into,那么就会进入该被调函数中进行调试。进去之后再按F10进行单步执行。如果想从被调函数中出来那么就单击Step Out,它的箭头是往外指的,表示从被调函数出来。出来后再按F10进行单步执行。如果执行到被调函数后直接按F10,那么就不会进入被调函数里面,而是直接跨过,这就是“Over”的含义。在按F10进行单步执行的过程中如果怎么按都没有反应,那么肯定是程序中有scanf等需要你从键盘输入数据的代码行。这时输入数据后回车再按F10就又继续单步执行了。

工具 表示打开或关闭Watch窗口。工具 表示打开或关闭变量窗口。最后一个工具表示打开C程序转换成汇编语言的窗口,当程序调试结束后会自动打开这个窗口,如果你想返回原来的C程序窗口单击这个工具项就行了。