VS2010程序调试方法(C++) ————墨白

一.导言

对于初步学习C++的朋友,程序的调试是一项必备的技能。尤其是像C++这样难学的语言,程序调试的基本方法更是至关重要。毕竟,谁也不想自己幸幸苦苦一天敲出来的代码就因为几个微小的bug就被废弃。如何从繁杂的代码中找出微小的bug,这就是我们今天学习的目的。
废话不多说,让我们一起进入代码调试的学习中吧!
注:本课程用VS2010作为IDE,但讲解的概念和方法是通用的,适用于所有IDE。

二.几个基本的概念梳理

有这么几个概念是我们课程开始之前必须要清楚的,分别是:断点、逐过程、逐语句、
跳出、继续,读者不妨先自己想一想这几个概念的内涵。

1.断点(Breakpoint)

这是一个很抽象的概念,也没有什么太官方的定义,我们只要知道,当我们按下调试按钮(VS快捷键为F5),程序就会自动执行断点前的所有代码,直至遇到断点停下来。这是我们调试的第一步。如果不设置断点,程序直接执行到最后,这样也就没有了所谓“调试”的意义了。再强调一遍,设置断点是调试程序的第一步!
设置断点的快捷键是F9.还有很有意思的一个现象,绝大多的IDE设置断点都是在某一行的正前方标记,而VS2010好像有点不同,细心的读者可以自己去操作一下,然后就会发现,咦,怎么虽然VS2010的断点显示的是XX行,但好像是在某两行之间啊。读者们可以结合上文中对于断点的概述想一想VS2010为什么要这样做,这样有什么好处。

2.逐过程与逐语句(step over and step into)

关于他们的定义我就不多做说明了,就是他们的字面意思。我想问的是,他们有什么区别?请读者好好想一想然后回答我。
嘻嘻,其实看他们的英文名就知道了。逐过程(step over)遇到函数就over,也就是一下就把函数整体执行完。而逐语句(step into)遇到函数则进入函数中,按一下step into(快捷键是F11),执行一行函数体中的代码。另外,逐过程(step over)的快捷键是F10,还是那句话,不管是那个,都一定要先设置断点。

3.跳出(step out)

所谓跳出,跳出什么?当然是跳出函数了。当你在一个函数内部执行跳出(step out)时,程序会直接执行完整个函数,并停留在函数调用语句的下一行(实际上时函数调用语句与下一条语句之间),跳出的快捷键 shift+F11.

4.继续(continue)

这个很简单,当你设置了几个断点,按下一个continue,程序执行到第一个断点处停下,再按一下,程序执行到下一个断点之前停下。快捷键是F5.

三.调试的基本方法

好了,到此为止,大家就没有概念上的问题了,然后调试方法就呼之欲出了。

步骤一:根据编译器的错误提示信息,合理的设置断点。
步骤二:按下 continue(继续),根据watch中变量的值与你的预期作比较,看是否出现错误。
步骤三:合理选择逐过程调试(stop over)或逐行调试(step into),寻找错误。

不断重复上述步骤,相信你一定可以找出程序中的所有bug。

注:如果读者觉得这篇博客有帮助,请收藏欧。

猜你喜欢

转载自blog.csdn.net/Architect_chaser/article/details/88094171