欢迎来到天天文库
浏览记录
ID:51747515
大小:496.50 KB
页数:5页
时间:2020-03-15
《程序调试步骤.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、认识调试功能 在组建(build)菜单中,点击开始调试(startdebug),在其下级子菜单中,包含了启动调试器运行的各项子命令(如图1所示) 图1开始调试菜单 各子命令及其功能如下: ·Go:从程序中的当前语句开始执行,直到遇到断点(后面讲)或遇到程序结束。·StepInto:控制程序单步执行,并在遇到函数调用时进入函数内部。·RuntoCursor:在调试运行程序时,使程序运行到当前光标所在位置时停止,相当于设置了一个临时断点。 二、单步调试代码 利用图1菜单中的Stepinto功能或按F1
2、1键,进入单步调试状态,有一个箭头指向程序的第一行,每按一次F11键,程序再向前执行一行语句,如图2所示。 图2开始调试后的界面 我们对图2的界面进行观察。 首先,菜单中增加一个调试(debug)菜单,如图中①处,下面是菜单中的部分功能(鼠标浮到上面时,会有提示,请试一试。)·StepInto(F11):单步调试程序,遇到调用函数时,进入函数内部逐步执行;·StepOver(F10):也是单步调试程序,遇到调用函数时,并不进入函数内容执行;·StepOut:调试程序时,从正在执行的某个嵌套结构的内部跳到该
3、结构的外部,常用于知道调用函数中不存在错误的情况;·RuntoCursor(CTRL-F10):调试程序时,直接运行到插入点处。 其次,和当前正在执行的语句相关的变量,以及其当前的值显示在了②处。 再次,黄色箭头代表了正在执行的位置。【练习1】 下面,针对求1+2+3+...+100的程序,体验单步执行。步骤: (1)编写如图所示求1+2+3+...+100的程序,排除编译错误; (2)按前述开始单步执行,用“StepInto(F11)”持续执行,在执行过程中,注意观察变量的变化。·调试中,要将自己的预期和计算机执行的结
4、果进行比较,当发现不一致,恭喜,问题找到了。·本程序循环要执行100次!有的程序进入循环要执行的次数更多,而初步跟踪确定循环不可能出问题,需要快速“跳出”循环。将光标移到循环后,用“RuntoCursor”,程序即运行到光标处。·在cout<<...一行继续F11,会吓人一跳,出现的界面是: 图3程序会运行到“看不懂”的代码中去,用StepOut功能退出 这是因为F11的单步运行,进入到了实现cout功能的代码中去了(教训:以后再到这儿,切记用StepOver(F10),而不是StepInto(F11)),此时请用Ste
5、pOut功能可以退出。 【练习2】再将上面的过程进行几遍,熟练上述过程,学会观察,会灵活使用StepOver(F10)、StepInto(F11)、StepOut和RuntoCursor处理。 提示:StepOver(F10)和StepInto(F11)的区别将在学习函数后更加明确,需要跟踪自定义函数内部代码时,用StepInto(F11),不需要跟踪时,就Over过去了。 【练习3】将光标置于程序中某一语句上,用RuntoCursor(快捷键CTRL-F10),看看发生什么现象——直接执行到了光标处!这是一种快速观察的方法。
6、 三、设置断点和断点应用 断点是程序执行需要中断的地方。可以让程序中断在需要的地方,从而方便其分析。 有两种设置断点的方法,如图4所示:·将光标移到需要设置断点的程序行,点击工具栏上的“手型”按钮设置断点。·利用鼠标右键设置:在程序行前的空白栏内点鼠标右键,选择菜单中的Insert/RemoveBreakpoints选项可以设置断点。 图4设置断点及相关工具 设置了断点的程序行前会出现一个黑色的实心圆圈。 取消断点用同样的按钮和菜单。 Go(F5)命令从程序中的当前语句开始执行,直到遇到断点(后面讲
7、)或遇到程序结束。 【练习4】在程序中随意设置和取消断点(一个程序中可以根据需要设置多个断点),然后用Go命令(F5)执行,观察变量及程序流程的变化。 技巧:在调试的过程中,可以直接使用RuntoCursor,从而避免多次的用StepInto/Over等命令。如果设置了断点,直接运行程序就可以在断点处停止,从而避免程序员总得关注光标的位置。一个程序中可以设多个断点,这也为程序员提供了方便。 四、用好快捷键和“调试”工具栏 在使用中记住各功能的快捷键,这将提高你的工作效率。快捷键可以从菜单中看到。 可以在工具栏处点右键,选择
8、“调试”工具栏,如图5,工具栏也可以方便你的工作。 图5调试工具栏 【练习5】将工具栏中的功能都点一点,看一看,想一想,但不求甚解。随着学习的深入,我们会逐步掌握。 五、程序调试方法小结 上面仅介绍了程序调试的基本方法,但灵
此文档下载收益归作者所有