vc++6.0 调试详细教程
Step into |
Step over |
Step out |
Run to cursor |
Watch |
Variables |
Registers |
Memory |
Stop Debug |
Call stack |
Disassembly |
Restart Debugger |
2、调试的一般过程
调试,就是在程序的运行过程的某一阶段观测程序的状态。在一般情况下程序是连续运行的,所以我们必须使程序在某一地点停下来。我们所做的第一项工作就是设立断点;其次再运行程序;当程序在设立断点处停下来时,利用各种工具观察程序的状态。
程序在断点停下来后,有时我们需要按我们的要求控制程序的运行,以进一步观测程序的流向。
下面我们依次来介绍断点的设置,如何控制程序的运行以及各种观察工具的利用。
3、设置断点
在VC中,可以设置多种类型的断点,根据断点起作用的方式把这些断点分为三类:
1、与位置有关的断点;
2、与逻辑条件有关的断点
3、与WINDOWS消息有关的断点。
主要介绍前面两种断点。
4、设置位置断点
最简单的是设置一般位置断点:
¡把光标移到你要设断点的位置,当然这一行必须包含一条有效语句的;
¡然后按工具条上的add/remove breakpoint按钮或按快捷键F9。
将会在屏幕上看到在这一行的左边出现一个红色的圆点表示这里设立了一个断点
5、设置位置断点-图示
6、设置逻辑断点
有的时候可能不需要程序每次运行到这儿都停下来,而是在满足一定条件的情况下才停下来,这时就需要设置一种与位置有关的逻辑断点。
从EDIT菜单中选中Breakpoints命令,这时Breakpoints对话框将会出现在屏幕上。选中Breakpoint对话框中的Location标签,使Location页面弹出。
如下页图所示。
7、
8、设置逻辑断点
单击上页Condition按钮,弹出BreakpointCondition对话框,在expression_r编辑框中写出你的逻辑表达式,最后按OK返回。
这种断点主要是由其位置发生作用的,但也结合了逻辑条件,使之更灵活。
9、控制程序的运行
上面我们讲了如何设置各类断点,下面我们来介绍如何控制程序的运行。当我们从菜单Build到子菜单Start Debug选择Go,程序开始运行在Debug状态下,程序会由于断点而停顿下来后,可以看到有一个小箭头,它指向即将执行的代码。
10、控制程序的运行
随后,我们就可以按要求来控制程序的运行:其中有四条命令:
¡Stepover
¡StepInto
¡StepOut
¡Runto Cursor
¡Step over :运行当前箭头指向的代码(只运行一条代码);
¡Step Into :如果当前箭头所指的代码有函数的调用,则用Step Into进入该函数进行单步执行;
¡Step Out:如当前箭头所指向的代码是在某一函数内,用它使程序运行至函数返回处;
¡Run to Cursor:使程序运行至光标所指的代码处。
11、查看工具的使用
调试过程中最重要的是要观察程序在运行过程中的状态,这样我们才能找出程序的错误之处。这里所说的状态包括各变量的值、寄存器中的值、内存器中的值、堆栈中的值,为此我们需要利用各种工具来帮助我们察看程序的状态。
12、查看工具的使用
Ø弹出式调试信息泡泡(Data Tips Pop_up Information)。
当程序在断点停下来后,要观察一个变量或表达式的值的最容易的方法是利用调试信息泡泡。要看一个变量的值,只需在源程序窗口中,将鼠标放到该变量上,你将会看到一个信息泡泡弹出,其中显示出该变量的值。
13、查看工具的使用-变量窗口
Ø变量窗口(VARIABLE WINDOW)。
在View 菜单,Debug Windows选 Variables;变量窗口将出现在屏幕上。其中显示着变量名及其对应的值。你将会看到在变量观察窗口的下部有三个标签:Auto ,Locals,this选中不同的标签,不同类型的变量将会显示在该窗口中。
14、
Ø观察窗口(WATCH WINDOW)
在View 菜单,选择Debug Windows 命令的Watch子命令。这时观察窗口将出现在屏幕上。
15、
在上图的观察窗口中双击Name栏的某一空行,输入你要查看的变量名或表达式;
回车后你将会看到对应的值。
16、查看工具的使用
观察窗口可有多页,分别对应于标签Watch1,Watch2,Watch3和Watch4。假如你输入的表达式是一个结构或是一个对象,你可以用鼠标点取表达式右边的形如+ ,以进一步观察其中的成员变量的值 。