前言:最近有些粉丝问我一些代码问题,他们的代码大多不是复杂的项目,但是对于初学者,他们发现代码的执行结果不符合自己的预期,但是又不知道自己哪里出了问题。我相信这是对于很多初学者来说,都会遇到的问题和情况,明明代码是按照自己的理解写的,感觉逻辑也说得通,那到底哪里出了问题呢??
他们的bug其实不难解决,一般通过调试就可以找出问题所在,但是难搞的地方,就是他们不会调试。今天我们就来教大家调试代码,清晰的看看代码的执行流程,帮你顺利找到bug,提高自己的编码水平!
如果学会了,喜欢博主的文章,可以一键三连支持博主,我们以后的日子里慢慢处!!
声明:此文针对C/C++初学者,使用VS2017编译器进行范例讲解。
首先来看一下我们的代码,我们预期它要输出"Parameter is not 7",结果它输出了"Parameter is 7",我想破了头也想不通哪里出问题了,内心独白就是“这么几句代码,我怎么可能写错?”
void Function_1(int Parameter)
{
int a = 1;
int b = 2;
if (Parameter = 7)
{
cout << "Parameter is 7" << endl;
}
else
{
cout << "Parameter is not 7" << endl;
}
return;
}
int main()
{
int a = 5;
Function_1(5);
return 0;
}
我们首先在VS2017中打开我们的C/C++项目,打开我们要调试的项目,接下来进入调试状态:
首先来说一下下断点的意义,下断点,在我理解看来就是让程序执行流断开,在断点处停住,当我们开始调试的时候,程序会停留在断点处,此时我们可以查看变量内容,看程序目前的执行结果等等。那么如何下断点?我通常使用有2个方法:
(1)将鼠标移至想要下断的代码所在行的最左端,然后点击鼠标左键。
假如我们想要在65行处下断电,那么如下图所示:
注意:断点可以下很多个,不止一个嗷~,我们这篇文章为了演示,我下两个断点,分别在main函数的第一句和Function_1()函数的 if 语句起始位置:
当我们下好断点之后,点击vs最上方工具栏调试–>开始调试,然后就可以进入调试状态,或者在断点下好之后,直接点击键盘最上方F5,也可以进入调试状态:
执行调试可以单步步过,也可以直接执行到下一个断点,跳过中间的步骤,如果我们一开始不知道问题出在哪里,可以选择在最初的一句下断点,然后点击VS最上方工具栏调试–>逐过程,就可以执行到当前断点的下一条语句,或者直接按快捷键F10,也可执行同样效果
当我们光标执行到Function_1()处,想看看里面发生的情况,那么可以点击工具栏调试–>逐语句,或者直接键盘上方快捷键F11,就会进入函数内部:
想要直接执行到断点处,我们可以怎么操作?加入我们一开始处于这里:
现在我们知道了怎么去调试,那对于上面代码的执行,我们充满疑惑,我们传参是5,但是结果输出却不是5,为什么?就让我们一探究竟!
在开始调试之后,点击工具栏调试–>窗口–>监视–>监视 1,打开一个监视窗口,这个窗口可以供我们监视程序中的变量:
本篇有关调试的基础文章到此结束,学会调试的你,一定会在以后的查bug之路上,攻城拔寨,势如破竹!!如果学会了,喜欢博主的文章,可以一键三连支持博主,我们以后的日子里慢慢处!!
惯例,今日份吟诗一句:
“路遥知马力,日久见人心”
联系客服