《VC调试工具.ppt》由会员分享,可在线阅读,更多相关《VC调试工具.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、主讲教师:杨主讲教师:杨 斌斌e-mail:1.1 调试环境的建立调试环境的建立1.2 调试的一般过程调试的一般过程 1.3 如何设置断点如何设置断点1.4 控制程序的运行控制程序的运行1.5 查看工具的使用查看工具的使用VC调试工具调试工具1.1 调试环境的建立调试环境的建立 在在VC中中每每建建立立一一个个工工程程(Project)时时,VC都都会会自自动动建建立立两两个个版版本本:Release版版本本,和和Debug版版本本。Release版版本本是是当当程程序序完完成成后后,准准备备发发行行时时用用来来编编译译的的版版本本,而而Debug版版本本是用在开发过程中进行调试时所用的版本。
2、是用在开发过程中进行调试时所用的版本。DEBUG 版版本本当当中中,包包含含着着MICROSOFT 格格式式的的调调试试信信息息,不不进进行行任任何何代代码码优优化化,而而在在RELEASE 版版本本对对可可执执行行程程序序的的二二进进制制代代码码进进行行了了优优化化,但但是是其其中中不不包包含含任任何何的的调调试试信信息。息。在在新新建建立立的的工工程程中中,所所看看到到是是DEBUG版版本本,若若要要选选择择RELEASE版版本本,可可以以选选择择菜菜单单PROJECT中中的的SETTING命命令令,这这时时屏屏幕幕上上面面弹弹出出PROJECT SETTEING 对对话话框框,在在SET
3、TING FOR下下拉拉列列表表中中选选择择RELEASE,按按OK退退出出,如如图图4.1。在在新新建建立立的的工工程程中中,将将DEBUGDEBUG版版本本变变为为RELEASERELEASE版版本本选选择择菜菜单单PROJECTPROJECT中中的的SETTINGSETTING命命令令,屏屏幕幕上上面面弹弹出出PROJECT PROJECT SETTEING SETTEING 对对话话框框,在在SETTING FORSETTING FOR下拉列表中选择下拉列表中选择RELEASERELEASE,按,按OKOK退出。退出。在调试程序的时候必须使用在调试程序的时候必须使用DEBUGDEBUG
4、版本,在版本,在Project Setting Project Setting 对对话框的话框的C/C+C/C+页中设置调试选项。页中设置调试选项。Program Database表示产生一个存储程序信息的数据文件表示产生一个存储程序信息的数据文件(.PDB),它它包含了类型信息和符号化的调试信息;包含了类型信息和符号化的调试信息;Line Numbers Only表示程序经过编译和链接产生的表示程序经过编译和链接产生的.OBJ或或.EXE文件文件仅仅包含全局和外部符号以及行号信息;仅仅包含全局和外部符号以及行号信息;C7 Compatible表示产生一个表示产生一个.OBJ或或.EXE文件行
5、号信息以及符号化的文件行号信息以及符号化的调试信息;调试信息;None表示不产生任何调试信息。表示不产生任何调试信息。1.2调试的一般过程调试的一般过程 调调试试,就就是是在在程程序序的的运运行行过过程程的的某某一一阶阶段段观观测测程程序序的的状状态态,而而在在一一般般情情况况下下程程序序是是连连续续运运行行的的,所所以以必须使程序在某一点停下来。必须使程序在某一点停下来。首先是设立断点。首先是设立断点。其其次次,运运行行程程序序,当当程程序序在在设设立立断断点点处处停停下下来来时时,再再利利用用各各种种工工具具观观察察程程序序的的状状态态。程程序序在在断断点点停停下下来来后后,按按我我们们的
6、的要要求求控控制制程程序序的的运运行行,以以进进一一步步观观测测程程序的流向。序的流向。1.3如何设置断点如何设置断点 在在VCVC中,可以设置多种类型的断点,根据断点起中,可以设置多种类型的断点,根据断点起作用的方式把这些断点分为三类作用的方式把这些断点分为三类:*与位置有关的断点;与位置有关的断点;*与逻辑条件有关的断点与逻辑条件有关的断点 *与与WINDOWSWINDOWS消息有关的断点。消息有关的断点。与位置有关的断点;与位置有关的断点;1、最简单的是设置一般位置断点,把光标移到你要设断点的位置;、最简单的是设置一般位置断点,把光标移到你要设断点的位置;然后按工具条上的然后按工具条上的
7、add/remove breakpoint 按钮或按快捷键按钮或按快捷键F9;在这;在这一行的左边出现一个红色的圆点表示设了一个断点。一行的左边出现一个红色的圆点表示设了一个断点。2 2、当在满足一定条件的情况下才停下来,设置一种与位置有关的逻辑断点。、当在满足一定条件的情况下才停下来,设置一种与位置有关的逻辑断点。从从EDIT EDIT 菜单中选中菜单中选中breakpointbreakpoint命令。选中命令。选中BreakpointBreakpoint对话框中的对话框中的LOCATIONLOCATION标标签,使签,使LOCATION LOCATION 页面弹出。页面弹出。单击单击con
8、dition按钮,弹出按钮,弹出Breakpoint对话框,在对话框,在Expression编编辑框中写出逻辑表达式,如辑框中写出逻辑表达式,如X=3或或a+b25,最后按最后按OK返回。返回。这种断点主要是由其位置发生作用的,但也结合了逻辑条件。这种断点主要是由其位置发生作用的,但也结合了逻辑条件。3、当需要更深入地调试程序,需要进入程序的汇编代码,在汇编代码上设立、当需要更深入地调试程序,需要进入程序的汇编代码,在汇编代码上设立断点:从断点:从View菜单中选菜单中选Debug window命令命令,再选,再选Disassembly子命令,这子命令,这时汇编窗口将会出现在屏幕上。时汇编窗口
9、将会出现在屏幕上。汇编窗口是对应于源程序的汇编代码,源程序用黑体字显示,下汇编窗口是对应于源程序的汇编代码,源程序用黑体字显示,下面是对应的汇编代码。设立断点,将光标移到想设断点处然后点击工具面是对应的汇编代码。设立断点,将光标移到想设断点处然后点击工具条上的条上的Insert/Remove Breakpoints 按钮,将会看到一个红圆点出现按钮,将会看到一个红圆点出现在该汇编代码的右边。在该汇编代码的右边。与逻辑条件有关的断点与逻辑条件有关的断点 1 1、逻辑条件触发断点的设置:、逻辑条件触发断点的设置:*从从EDIT EDIT 菜单中选中菜单中选中breakpointbreakpoint
10、命令,屏幕上出现命令,屏幕上出现BreakpointBreakpoint对话框。对话框。*选中选中Breakpoint对话框中的对话框中的DATA标签,对应的页面将会弹出标签,对应的页面将会弹出*DATADATA页面中的页面中的ExpressionExpression编辑框中写出逻辑表达式,如编辑框中写出逻辑表达式,如(X=3);(X=3);2 2、监视表达式发生变化断点:、监视表达式发生变化断点:*从从EDIT EDIT 菜菜单单中中选选中中breakpointbreakpoint命命令令,屏屏幕幕上将会出现上将会出现BreakpointBreakpoint对话框。对话框。*选选中中Brea
11、kpointBreakpoint对对话话框框中中的的DATADATA标标签签,对对应的页面将会弹出。应的页面将会弹出。*在在ExpressionExpression编编辑辑框框中中写写出出需需要要监监视视的的表表达式。达式。*最后按最后按OKOK键返回。键返回。3 3、监视数组发生变化的断点:、监视数组发生变化的断点:*从从EDIT EDIT 菜菜单单中中选选中中breakpointbreakpoint命命令令,屏屏幕幕上将会出现上将会出现BreakpointBreakpoint对话框。对话框。*选选中中BreakpointBreakpoint对对话话框框中中的的DATADATA标标签签,对对
12、应的页面将会弹出。应的页面将会弹出。*在在ExpressionExpression编编辑辑框框中中写写出出需需要要监监视视的的数数组组名名;在在Number Number of of Elements Elements 编编辑辑框框输输入入需需要监视数组元素的个数;要监视数组元素的个数;*按按OKOK键返回。键返回。4 4、监视由指针指向的数组发生变化的断点:、监视由指针指向的数组发生变化的断点:*从从EDIT EDIT 菜菜单单中中选选中中breakpointbreakpoint命命令令,在在屏屏幕上将会出现幕上将会出现BreakpointBreakpoint对话框。对话框。*选中选中Bre
13、akpointBreakpoint对话框中的对话框中的DATADATA标签;标签;*在在 ExpressionExpression编编 辑辑 框框 中中 输输 入入 形形 如如*pointnamepointname,其其中中*pointnamepointname为为指指针针变变量量名名;在在Number Number of of ElementsElements编编辑辑框框输输入入需需要要监监视数组元素的个数;视数组元素的个数;*最后按最后按OKOK键返回。键返回。5 5、监视外部变量发生变化的断点:、监视外部变量发生变化的断点:*从从EDIT EDIT 菜单中选中菜单中选中breakpoin
14、tbreakpoint命令,屏幕命令,屏幕上将会出现上将会出现BreakpointBreakpoint对话框;对话框;*选中选中BreakpointBreakpoint对话框中的对话框中的DATADATA标签;标签;*在在ExpressionExpression编辑框中输入变量名;编辑框中输入变量名;*点击在点击在ExpressionExpression编辑框的右边的下拉键编辑框的右边的下拉键头;头;*选取选取AdvancedAdvanced选项,选项,Advanced Advanced Breakpoint Breakpoint 对话框出现;对话框出现;*在在contextcontext框中
15、输入对应的函数名和文件框中输入对应的函数名和文件名;名;*按按OKOK键关闭键关闭Advanced Breakpoint Advanced Breakpoint 对话框。对话框。*按按OKOK键关闭键关闭Breakpoints Breakpoints 对话框。对话框。1.4 控制程序的运行控制程序的运行 从从菜菜单单BuildBuild到到子子菜菜单单Start Start DebugingDebuging 选选择择GoGo程程序序开开始始运运行行在在DebugDebug状状态态下下,程程序序会会由由于于断断点点而而停停顿顿下下来来后后,可可以以看看到到有有一一个个小小箭箭头头,它它指指向向即
16、即将将执执行行的的代代码码。按按要要求求来来控控制制程程序序的的运运行行,其其中中有有四四条条命命令令:Step Step over,over,step step Into,Step Out,Run to CursorInto,Step Out,Run to Cursor。Step Step over over 的的功功能能是是运运行行当当前前箭箭头头指指向向的的代代码码(只只运运行行一条代码一条代码)。Step Step IntoInto的的功功能能是是如如果果当当前前箭箭头头所所指指的的代代码码是是一一个个函函数的调用,则用数的调用,则用Step Into Step Into 进入该函数进
17、行单步执行。进入该函数进行单步执行。Step Step OutOut的的功功能能是是如如当当前前箭箭头头所所指指向向的的代代码码是是在在某某一一函函数内,用它使程序运行至函数返回处。数内,用它使程序运行至函数返回处。Run Run to to CursorCursor的的功功能能是是使使程程序序运运行行至至光光标标所所指指的的代代码码处。处。1.5 查看工具的使用查看工具的使用 调调试试过过程程中中最最重重要要的的是是要要观观察察程程序序在在运运行行过过程程中中的的状状态态,才才能能找找出程序的错误之处。出程序的错误之处。1 1、弹出式调试信息泡泡、弹出式调试信息泡泡(Data Tips(Da
18、ta Tips Pop_upPop_up Information)Information)。要看一个变量的值或表达式的值,只需在源程序窗口中,将鼠标放到该要看一个变量的值或表达式的值,只需在源程序窗口中,将鼠标放到该变量上变量上,将会看到一个信息泡泡弹出,其中显示出该变量的值。将会看到一个信息泡泡弹出,其中显示出该变量的值。2 2、变量窗口、变量窗口(VARIABLE WINDOW)(VARIABLE WINDOW)。在在VIEW VIEW 菜菜单单,Debug Debug windowwindow选选 Variables Variables window;window;变变量量窗窗口口将将出
19、出现现在在屏屏幕幕上上。其其中中显显示示着着变变量量名名及及其其对对应应的的值值。将将会会看看到到在在变变量量观观察察窗窗口口的的下下部部有有三三个个标标签签:AUTO AUTO,LOCAL,THIS,LOCAL,THIS 选选中中不不同同的的标标签签,不不同同类型的变量将会显示在该窗口中。类型的变量将会显示在该窗口中。3 3、观察窗口、观察窗口(WATCH WINDOW)(WATCH WINDOW)。在在VIEW VIEW 菜菜单单,选选择择Debug Debug windowwindow,Watch Watch window window 子子命命令令。变变量量窗口将出现在屏幕上。窗口将出
20、现在屏幕上。观观察察窗窗口口中中双双击击NameName栏栏的的某某一一空空行行,输输入入要要查查看看的的变变量量名名或或表表达达式式。回回车车后后将将会会看看到到对对应应的的值值。观观察察窗窗口口可可有有多多页页,分分别别对对应应于于标签标签Watch1,Watch2,Watch3Watch1,Watch2,Watch3等等。等等。4 4、快速查看变量对话框、快速查看变量对话框(quick watch)(quick watch)。(。(查看变量或表达式的值查看变量或表达式的值)(1 1)在)在Debug Debug 菜单,选择菜单,选择Quick WatchQuick Watch,出现,出现
21、Quick Watch Quick Watch 对话框;对话框;(2 2)在)在Expression Expression 编辑框中输入变量名,按回车;编辑框中输入变量名,按回车;(3 3)在)在Current Value Current Value 格子中将出现变量名及其当前对应的值;格子中将出现变量名及其当前对应的值;(4 4)如要改变该变量的值双击该变量对应的)如要改变该变量的值双击该变量对应的Name Name 栏,输入要改变的值;栏,输入要改变的值;(5 5)如要把该变量加入到观察窗口中,点击)如要把该变量加入到观察窗口中,点击Add watch Add watch 按钮;按钮;(6 6)点击)点击Close Close 按钮返回。按钮返回。