文章目录
1 什么是bug?
Bug (物理)
2 调式 (debug)
拒绝迷信式调试
2.1 调式步骤
发现程序错误
的存在- 以
隔离、消除
等方式对错误进行定位
确定错误产生的原因
提出
纠正错误的解决办法
- 对程序错误予以
改正,重新测试
2.2 debug 和 release
Debug
通常称为调试版本
,它包含调试信息,并且不作任何优化,便于程序员调试程序
.Release
称为发布版本
,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优
的,以便用户很好地使用。release比debug小得多
2.3 快捷键
F5
:启动调试
,经常用来直接跳到下一个断点
处。右击红点可以设置条件断点!!!
F9
:创建断点和取消断点
. 断点的重要作用,可以在程序的任意位置设置断点。这样就可以使得程序在想要的位置随意停止执行,继而一步步执行下去F10
: 逐过程,通常用来处理一个过程
,一个过程可以是一次函数调用,或者是一条语句。F11
: 逐语句,就是每次都执行一条语句
,但是这个快捷键可以使我们的执行逻辑进入函数内部(这是最常用
的)。CTL + F5
: 开始执行不调试
,如果你想让程序直接运行起来而不调试就可以直接使用。
VS中常用的快捷键
2.4 各种窗口
调试的时候查看程序当前信息
- 使用栈来维护栈帧
2.5 调用堆栈
void test2()
{
printf("test2\n");
}
void test1()
{
test2();
}
void test()
{
test1();
}
int main()
{
test();
return 0;
}
3 例子
3.1 求前n个阶乘相加
int main()
{
int n = 0;
int i = 0;
int ret = 1;
int sum =