C++_ch07_visual studio调试代码
1.1 Break Point
断点就是程序执行到这里就会暂停,一个程序可以设置很多短点。在visual studio中只需要点击侧栏就可以设置断点。
点击左边的栏目,出现红点就是设置的断点。
另外要确保打断点的位置必须是可执行的代码,不然断点就没有意义。
此外,打断点必须是在Debug模式下进行。这样才有意义。
断点方便我们逐行执行代码,并观察问题出现在哪里。
1.2、用一段代码认识调试的过程
#include<iostream>int multiply(int a,int b)
{return a*b;
}int main()
{int n = 0;n = multiply(3,4);n++;const char* var = "Hello";for( int i = 0 ; i < 5 ; i++ ){const char c = var[i];std::cout<<c<<std::endl;}std::cin.get();return 0;
}
观察这个完整的界面:
1.2.1 黄色箭头
这个黄色箭头表示还没有运行但是即将运行所指向的那一行代码,只要你按了这个键:或者按F11
这个的意思是运行下一行代码。那么就会继续执行下去。
1.2.2观察变量区
注意看我们运行到我所设置的断电时已经有了n和var两个变量,此时n的值是13,那么我们可以肯定
int n = 0;n = multiply(3,4);n++;
这3行已经被执行了,var内的值为啥是这样的呢?因为在断点处我们的var还没被初始化。一旦我们继续运行,他的值就会变:
红色,表示该值马上就要改变了。再继续运行
此时var已经接受到了"Hello"这个值,并且var[i]已经知道了,因为我们已经进入了循环,计算机知道我们的变量i是0了。所以var[0] = ‘H’。
这个时候终端还没有任何输出:
1.2.3、观察内存
内存视图如何找:
会弹出这样的窗口:
左边灰色的是地址栏,右边是存储的数据。
如果我们要找到固定变量在内存中的地址和存储的数据,以n为例,只需要输入
&n
就可以看到n对应的是这个地址:
这里的0d是十六进制数。
d代表13。那么0d存储的就是13这个整数。我们可以看到n在此时确实是13.我们为了观察内存,可以看看n在内存中是不是慢慢变成13的。
此时内存存储的是0:
此时内存变成12。
此时内存变成了13。
内存确实是按照预想的变化的。