断点程序vc++6.0 调试详细教程
每日一贴,今天的内容关键字为断点程序
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钮按,弹出Breakpoint Condition对话框,在expression_r编辑框中写出你的逻辑表达式,最后按OK返回。
种这断点要重是由其位置产生作用的,但也结合了逻辑条件,使之更活灵。
9、控制程序的行运
下面我们讲了如何设置各种断点,下面我们来分析如何控制程序的行运。当我们从菜单Build到子菜单Start Debug选择Go,程序开始行运在Debug状态下,程序会由于断点而停顿下来后,可以看到有一个小头箭,它指向即将行执的代码。
10、控制程序的行运
随后,我们以可就按要求来控制程序的行运:其中有四条命令:
¡ Step over
¡ Step Into
¡ Step Out
¡ Run to 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。假如你输入的表达式是一个结构或是一个象对,你可以用标鼠点取表达式右侧的形如 + ,以进一步视察其中的成员变量的值。
文章结束给大家分享下程序员的一些笑话语录:
这个世界上只有10种人:懂得二进制的和不懂得二进制的。