程序调试步骤

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、认识调试功能

在组建(build)菜单中,点击开始调试(start debug),在其下级子菜单中,包含了启动调试器运行的各项子命令(如图1所示)

图1 开始调试菜单

各子命令及其功能如下:

•Go:从程序中的当前语句开始执行,直到遇到断点(后面讲)或遇到程序结束。

•Step Into:控制程序单步执行,并在遇到函数调用时进入函数内部。

•Run to Cursor:在调试运行程序时,使程序运行到当前光标所在位置时停止,相当于设置了一个临时断点。

二、单步调试代码

利用图1菜单中的Step into功能或按F11键,进入单步调试状态,有一个箭头指向程序的第一行,每按一次F11键,程序再向前执行一行语句,如图2所示。

图2 开始调试后的界面

我们对图2的界面进行观察。

首先,菜单中增加一个调试(debug)菜单,如图中①处,下面是菜单中的部分功能(鼠标浮到上面时,会有提示,请试一试。)

•Step Into(F11):单步调试程序,遇到调用函数时,进入函数内部逐步执行;

•Step Over(F10):也是单步调试程序,遇到调用函数时,并不进入函数内容执行;

•Step Out:调试程序时,从正在执行的某个嵌套结构的内部跳到该结构的外部,常用于知道调用函数中不存在错误的情况;

•Run to Cursor(CTRL-F10):调试程序时,直接运行到插入点处。

其次,和当前正在执行的语句相关的变量,以及其当前的值显示在了②处。

再次,黄色箭头代表了正在执行的位置。

【练习1】

下面,针对求1+2+3+...+100的程序,体验单步执行。步骤:

(1)编写如图所示求1+2+3+...+100的程序,排除编译错误;

(2)按前述开始单步执行,用“Step Into(F11)”持续执行,在执行过程中,注意观察变量的变化。

•调试中,要将自己的预期和计算机执行的结果进行比较,当发现不一致,恭喜,问题找到了。

•本程序循环要执行100次!有的程序进入循环要执行的次数更多,而初步跟踪确定循环不可能出问题,需要快速“跳出”循环。将光标移到循环后,用“Run

to Cursor”,程序即运行到光标处。

•在cout<<...一行继续F11,会吓人一跳,出现的界面是:

图3 程序会运行到“看不懂”的代码中去,用Step Out功能退出这是因为F11的单步运行,进入到了实现cout功能的代码中去了(教训:以后再到这儿,切记用Step Over(F10),而不是Step Into(F11)),此时请用Step Out功能可以退出。

【练习2】再将上面的过程进行几遍,熟练上述过程,学会观察,会灵活使用Step Over(F10)、Step Into(F11)、Step Out和Run to Cursor处理。

提示:Step Over(F10)和Step Into(F11)的区别将在学习函数后更加明确,需要跟踪自定义函数内部代码时,用Step Into(F11),不需要跟踪时,就Over过去了。

【练习3】将光标置于程序中某一语句上,用Run to Cursor(快捷键CTRL-F10),看看发生什么现象——直接执行到了光标处!这是一种快速观察的方法。

三、设置断点和断点应用

断点是程序执行需要中断的地方。可以让程序中断在需要的地方,从而方便其分析。

有两种设置断点的方法,如图4所示:

•将光标移到需要设置断点的程序行,点击工具栏上的“手型”按钮设置断点。

•利用鼠标右键设置:在程序行前的空白栏内点鼠标右键,选择菜单中的Insert/Remove Breakpoints选项可以设置断点。

图4设置断点及相关工具

设置了断点的程序行前会出现一个黑色的实心圆圈。

取消断点用同样的按钮和菜单。

Go(F5)命令从程序中的当前语句开始执行,直到遇到断点(后面讲)或遇到程序结束。

【练习4】在程序中随意设置和取消断点(一个程序中可以根据需要设置多个断点),然后用Go命令(F5)执行,观察变量及程序流程的变化。

技巧:在调试的过程中,可以直接使用Run to Cursor,从而避免多次的用Step Into/Over 等命令。如果设置了断点,直接运行程序就可以在断点处停止,从而避免程序员总得关注光标的位置。一个程序中可以设多个断点,这也为程序员提供了方便。

四、用好快捷键和“调试”工具栏

在使用中记住各功能的快捷键,这将提高你的工作效率。快捷键可以从菜单中看到。

可以在工具栏处点右键,选择“调试”工具栏,如图5,工具栏也可以方便你的工作。

图5 调试工具栏

【练习5】将工具栏中的功能都点一点,看一看,想一想,但不求甚解。随着学习的深入,我们会逐步掌握。

五、程序调试方法小结

上面仅介绍了程序调试的基本方法,但灵活运用可以为编写出正确的程序提供强大的支

撑。

随着经验的增加,简短且算法简单的程序你可能凭观察就知一二。对需要观察其运行过程的程序,可以这样做:

•增加必要的断点(当然,嫌疑解除后去除断点);

•如果必要,添加监视,以便于观察一些表达式的值;

•用Step Into、Step Over、Step Out或Run to Cursor等的组合,跟踪程序执行的过程

•在运行过程中,和自己对运行结果的预期结合起来,思考程序可能出现的问题。

•需要退出程序时,使用调试菜单中的“Stop Debugging”选项终止执行。这时再修改程序。

•如果程序执行异常,一定要告诉自己:程序中一定有bug,不是机器的错,我得找出bug来,Bug也一定会被你找出来。

相关文档
最新文档