10

代码调试是程序员必备技巧,简单示例,VS如何调试C++程序

 3 years ago
source link: http://developer.51cto.com/art/202102/646286.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

AJZNfmq.jpg!mobile

代码调试是程序员必须掌握的一门技巧,掌握代码调试对以后学习,错误排除,源码研究等都有很大的帮助。

前言

再牛的程序员也没法一口气把代码全部写正确,通常做法就是写一小段然后验证代码正确性,再继续写下一段,这样能保证代码不会错得太离谱。怎么衡量一小段代码呢?在你觉得这段代码没有十足把握的情况下就应该停下来验证一下。

断点调试常用术语

“单步进入”step into:就是单步执行,遇到子函数就进入并且继续单步执行;

“单步执行并跳过”step over:是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。

“单步执行并返回”step return:就是单步执行到子函数内时,用step return就可以执行完子函数余下部分,并返回到上一层函

数。

“继续执行”:即跳过此断点继续运行。

简单的例子

先来看一个简单的代码,如下,代码很简单,结果显而易见,咱们来调试一下这个代码

Q3mAnuF.png!mobile

1,进入调试

点击菜单栏->调试->逐语句 或者使用快捷键“F11”

nuym6zF.jpg!mobile

进入之后,在main函数的第一行,会出现一个黄色小箭头,代表着此时代码执行到的位置。

7VVniuR.png!mobile

接下来继续按"F11",即可逐步执行每行代码了,执行的过程中,我们需要查看变量的值的变化,菜单栏->调试->窗口->局部变量,先点击这个打开局部变量窗口

6ru6z2a.png!mobile

此时我们会在下面的窗口中看到变量,目前在内存里面的数据及类型

IVNrayf.jpg!mobile

当我们继续执行时,会发现局部变量窗口中的变量的值发生了改变,很直观即可看到结果

r2uEriE.png!mobile

当执行到函数调用语句时,会进入函数内部执行,而且局部变量里面会同步显示函数里面的变量信息

QBNzQfn.jpg!mobile

函数执行结束,会返回到调用处,而且局部变量窗口会显示返回值信息

Qn2Eza7.jpg!mobile

这就是逐步调试一个简单的流程,你学会了吗?

逐步调试配合断点

再来看一个简单的代码,如下

26ZNj2q.jpg!mobile

如果按"F11"使用单步调试,那么我们需要在循环处,按10次才能执行到printf语句。我们可以结合断点,快速跳过循环。

1,添加断点

把光标移动到需要加断点的行,然后按"F9",或者用鼠标在需要加断点的行前面的灰色区域点一下。

mu6vIvj.jpg!mobile

2,跳过循环

首先逐步调试到循环处,然后按"继续"即可直接执行到最近的断点所在的行

fQzE3y.png!mobile

点“继续”直接跳转到断点处

mINvair.jpg!mobile
u2uQfym.png!mobile

3,删除断点

重复添加断点的步骤即可

好了,简单调试就介绍到这里,大家可以先练习一下,后面介绍复杂的示例。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK