欢迎来到天天文库
浏览记录
ID:49200221
大小:60.50 KB
页数:11页
时间:2020-03-01
《vc的调试技术.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、VC程序调试技术vc程序调试技术VC程序调试技术在开发程序的过程屮,经常需要査找程序屮的错误,这就需要利用调试工具來帮助你进行程序的调试,当然目前有许多调试工具,而集成在VC中的调试工具以其强大的功能,一定使你爱不释乎。下血我们先來介绍VC中的调试工具的使用。1VC调试工具1.1调试环境的建立在VC中每当建立一个工程(Project)时,VC都会自动建立两个版本:Release版本,和Debug版本,正如其字面意思所说的,Release版本是当程序完成后,准备发行时用来编译的版木,而Debug版本是用在开发过程屮进行调试时所用的版本。DEBUG版木当中,包含1-MICROSOFT格式的调
2、试信息,不进行任何代码优化,而在RELEASE版木对可执行程序的二进制代码进行了优化,但是其屮不包含任何的调试信息。在新建立的工程屮,你所看到是DEBUG版本,若要选择RELEASE版木,可以选择菜单PROJECT中的SETTING命令,这时屏幕上面弹出PROJECTSETTEING对话框,在SETTINGFORF拉列表中选择RELEASE,按OK退出,如图4.1。图4.1在调试程序的时候必须使用DEBUG版本,我们可以在ProjectSetting对话框的C/C++页屮设置调试选项。图4.2各个选项的含意如•ProgramDatabase表示产生一个存储程序信息的数据文件(.PDB),
3、它包含了类型信息和符号化的调试信息;•LineNumbersOnly表示程序经过编译和链接产生的.OBJ或.EXE文件仅仅包含全局和外部符号以及行号信息;•C7Compatible表示产生一个.OBJ或.EXE文件行号信息以及符号化的调试信息;•None表示不产生任何调试信息。1.2调试的一般过程调试,说到底就是在程序的运行过程的某一阶段观测程序的状态,而充一般情况下程序是连续运行的,所以我们必须使程序在某一地点停下來。所以我们所做的第一项工作就是设立断点。其次,再运行程序,当程序在设立断点处停下來时,再利用各种工具观察程序的状态。程序在断点停下來后,有时我们需要按我们的要求控制程序的运
4、行,以进一步观测程序的流向,所以下面我们依次來介绍断点的设置,如何控制程序的运行以及各种观察工具的利用。1•3如何设置断点在VC中,你可以设置多种类型的断点,我们可以根据断点起作用的方式把这些断点分为三类:仁与位置有关的断点;2、与逻辑条件有关的断点3、与WINDOWS消息有关的断点下面我们分别介绍这三类断点。首先我们介绍与位置刊关的断点。1、最简单的是设置一般位置断点,你只要把光标移到你要设断点的位置,当然这一行必须包含一条有效语句的:然后按工具条上的add/removebreakpoint按钮或按快捷键F9:这时你将会在屏幕上看到在这一行的左边出现一个红色的圆点表示这二设立了一个断点
5、。图4.32、有的时候你可能并不需要程序毎次运行到这儿都停下來,而绘在满足…定条件的情况下才停下來,这时你就需要设置一种与位置有关的逻辑断点。要设置这种断点我们只需要从EDIT菜单中选中breakpoint命令,这时Breakpoint対话框将会出现在屏幕上。选+Breakpoint対话框屮的LOCATION标签,使LOCATION页面弹出,如图4.4图4.4单击condition按扭,弹{IlBreakpoint对话框,在Expression编轲框屮写出你的逻紺表达式,如X>=3或a+b>25,最后按0K返冋。图4.5这种断点主要是山其位置发生作用的,但也结合了逻辑条件,使之更灵活。3
6、、有时我们需要更深入地调试程序,我们需要进入程序的汇编代码,因此我们需要在在汇编代码上设立断点:要设立这种断点我们只需从View菜单屮选Debugwindow命令,图4.6再选Disassemblyf命令,这时汇编窗II将会出现在屏幕上。图4.7在图4.7屮的汇编窗门中你将看到对应于源程序的汇编代码,其中源程序是用黑体字显示,下面是且对应的汇编代码。要设立断点,我们只需将光标移到你想设断点处然后点击丁•具条上的Insert/RemoveBreakpoints按钮,此后你将会看到一个红岡点出现在该汇编代码的右边。图4.8上血所讲的断点主要是山于其位置发挥作用的,即当程序运行到设立断点的地方
7、时程序将会停卜來。但右时我们设立只与逻辑条件有关的断点,而与位置无关。所以下面介绍一下与逻辑条件有关的断点。(1)逻辑条件触发断点的设置:I从EDIT菜单屮选屮breakpoint命令,这时屏幕上将会出现Breakpoint对话框。图4.9I选屮Breakpoint对话框中的DATA标签,对应的页面将会弹出图4.10I在图4.10的DATA页面中的Expression编辑框中写出你的逻辑表达式,如(X==3);图4.11最后按0K返
此文档下载收益归作者所有