欢迎来到天天文库
浏览记录
ID:13797721
大小:211.00 KB
页数:4页
时间:2018-07-24
《程序调试总结系列1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、程序调试总结系列——(1)概念总结从用VisualC++6.0成功编写出第一个程序“hellocworld!”到现在已经有两年的时间,期间也写过不少的程序,但是真正一次性运行成功的程序还真没有几个(这里说的是程序没有语法错误,但是运行结果不正确,也就是程序在逻辑上有问题),这时候就需要找到出现问题的语句。调试是一个非常有用的机制,在这里就对程序调试的方法进行一下总结,不能说是非常系统,但是确实是我在两年的程序编写过程中的一些体会,希望能对大家有所帮助,同时欢迎大家对文中的缺点和错误进行指正。断点介绍:断点是我们在程序调试之前,对我们编写的代码进行标记,指定一个调试过程中程序
2、的停止位置。比如下边的一段代码中,在“i+=j;”语句设置断点,效果如下:断点添加:断点的添加快捷键为F9,把光标放在“i=j=2;”然后按一下键盘上的F9,就会在该行的最前边添加一个红色的圆点,这个圆点就是我们所说的断点位置。断点设置完成之后,就可以进入调试,按下快捷键F5,程序会快速运行并停在断点处。这时候我们有两种选择,(1)、继续按下F5,程序仍然会快速执行,直到遇到下一个断点、等待用户输入或者是程序结束等情况才会停止。(2)、按F10,进行单步调试,这样程序会一步一步执行断点之后的代码,方便我们查看程序运行过程中,各变量值的变化情况。清除断点:如果上例的断点不需要
3、,想要取消该断点,仍然把光标放在“i=j=2;”,再次按下F9键,断点标记就会消失。当然如果我们设置了很多断点,想要全部清除,这时我们可以按下快捷键CTRL+SHIFT+F9,程序中的所有断点将全部清楚。工具栏介绍:VisualC++6.0提供了一种调试的机制,为了达到熟练使用调试功能的目的,首先让我们了解一下在调试过程中会用到的工具栏及其功能。(为了便于理解,我就不使用特别专业的词汇,而是根据我的理解,用自己的话描述)(注意:正常的代码编辑的过程中,在菜单栏里是没有【调试】这一项(如下图左),但是当我们进入调试状态,该选项会自动显示。)Go(F5):启动调试,程序会在循序
4、执行,直到遇到断点、程序结束或者是等待用户输入。Restart(Ctrl+shift+F5):重新启动调试。StopDebugging(Shift+F5):退出当前的调试。Break(此功能常常在遇到调用函数的语句时可见):此功能将在调试过程中的debugger当前位置挂起程序的执行,然后就可以在调试状态一修改程序的代码,接着可以用ApplyCodeChanges(Alt+F10)来应用修改的代码到正在调试的程序当中.如果,当前(需要等待)可以(从DOS等窗口)输入值,挂起后将不能再输入。(我到现在还没有用过这个功能)ApplyCodeChanges(Alt+F10):该按
5、键正常调试时,处于不可用状态。我们在调试的过程中,发现程序中有错误,在调试状态下对源代码进行了修改,该按键就可以使用了。它的作用是我们不需要退出本次调试即可应用刚刚修改的代码。(这个功能在实际的应用中还是挺有帮助的)StepInto(F11):当我们在调试的过程中,遇到了函数(一般为自定义函数),单击此键,就会以单步调试的方式进入函数体,并停在函数内的第一条语句,之后我们就可以按“F10”对函数内部的语句进行单步调试,查看运行状态。StepOut(Shift+F11):该功能是针对上一条功能设置的,即当程序进入函数体内部之后,我们希望程序跳到函数体外,执行下边的代码时,就可
6、以单击该键。程序会跳到函数外,并停在函数被调用的下一条语句。(该功能一般是在我们确定函数体内剩下的语句一定没有问题时使用的)StepOver(F10):单步执行程序,如果要执行的语句是函数,那么只要函数体内部没有设置断点,系统会迅速执行程序内部的所有语句,然后停在下一条语句上,等待继续调试,感觉就像是整个函数是一条语句。RuntoCursor(Ctrl+F10):在调试过程中,尤其是单步调试或者是有多个断点的时候,使用该功能,可以迅速执行语句,直到遇到下一个断点、程序结束或者是程序等待用户输入等情况。ShowNextStatement(Alt+Num*):显示程序代码的下一
7、条语句,如果源代码中找不到,则在Disassembly窗口中显示语句。(有的同学可能不知道Disassembly窗口是什么,那么在调试状态下,点击出现的窗口即为Disassembly窗口,再点击一下返回源代码编辑窗口)(我到现在还没有用过这个功能)QuickWatch(Shift+F9):添加需要监视的变量或表达式。(这个功能还是比较实用的,尤其是在程序出现逻辑错误的时候,它的优势会更加明显)Watch:监视窗口。(监视窗口就是在quickwatch中设置的变量或表达式值的显示窗口,方便我们对添加变量的值进行实时查
此文档下载收益归作者所有