当前位置:网站首页 > 编程语言 > 正文

vs怎么调试程序(vs的调试功能怎么用)



在我们写代码的时候常常会出现一些错误(逻辑上的错误),当你不知道这些错误怎么修改的时候就可以尝试进行调试

目录

1.调试的基本步骤

2.Debug和Release的介绍

3.快捷按键与功能详解

3.1 - F10逐语句执行

3.2 - F11逐过程执行

3.3 F5 - 调试 F9 - 设置/取消断点

4.调试过程中查看相关信息

4.1自动窗口

4.2临时变量

4.3监视

4.4内存

4.5反汇编

4.6寄存器

4.7调用堆栈


  • 发现程序错误的存在
  • 以隔离,消除等方式对错误进行定位
  • 确定错误产生的原因
  • 提出纠正错误的解决办法
  • 对程序错误予以改正,重新测试

Debug为调试版本,包含调试信息,并且不作优化,便于程序员调试程序

Release为发布版本,进行了各种优化,便于用户使用

如何确定是Debug版本还是Release版本

我们调试是要将环境改成Debug,Release环境下是没办法调试的

  1. F5 - 开始调试
  2. ctrl+f5 开始执行(不调试)
  3. F9 设置断点/取消断点
  4. F10 逐过程 - 不会进入函数
  5. F11 逐语句 - 遇到函数会进入函数
  6. (F5是和F9配合使用的)

/pre>

p>这段代码是怎么执行的呢,我们来按F10,逐过程看看代码怎么运行

/p>

div>

/div>

p>按了一次F10后可以看到开始运行了,现在光标的位置在红圈所在地方,说明代码运行到了这里

/p>

div>

/div>

p>再按一次F10,就运行到了下一句,此时我们打开局部变量看看

/p>

div>

/div>

p>打开之后我们可以看到,运行到这一步之后,就会创建一个变量i,类型是int

/p>

div>

/div>

p>我们再按一次F10

/p>

div>

/div>

p>运行到下一步的时候,就把i的值赋为0了,接下来是一个循环,我们来看看循环是怎么运行的

/p>

div>

/div>

p>满足循环条件i < 10,进入循环,并执行语句printf("%d",i),此时会打印出0

/p>

div>

/div>

p>再次按F10的时候,就会回到for语句,继续判断是否满足for循环的条件,满足则进入循环,不满足离开循环.

/p>

div>

/div>

p>当i已经打印了1-9之后,i会变成10,在判断不满足for循环条件之后,就会离开循环,执行下一句

/p>

div>

/div>

p>执行到return 0 之后,就结束程序了

/p>

p>

以上代码我们测试了F10的功能是逐过程执行代码,我们可以一条一条的查看代码,当你的程序出现错误的时候,你就可以逐语句,看看程序运行的过程和你想象的过程是否一样,如果不一样,那到底是哪一部分的代码出现了问题

/p>

p>

/p>

p>当我们遇到函数之后,如下面这段代码

/p>

pre>

/code>

div>

/div>

div>

/div>

div>

/div>

div>

/div>

div>

/div>

span style="color:#c21c13;">,F11是逐语句执行,从程序开始到结束的代码每一条都会执行,会进入函数内部,F10是逐过程,不会进入函数内部

/span>

div>

/div>

div>

/div>

span style="color:#c21c13;">设置断点之后,按F5运行,就会移动到下一个断点处,并运行前面所有的代码

/span>

span style="color:#a639d7;">

当我们进入循环,如果循环有100次,你想找到第50次,断点应该怎么设置

/span>

div>

/div>

div>

/div>

div>

/div>

div>

/div>

span style="color:#a639d7;">

还有一种方法

/span>

div>

/div>

span style="color:#c21c13;">要开始调试才能看到窗口里的相关信息

/span>

div>

/div>

div>

/div>

div>

/div>

div>

/div>

div>

/div>

div>

/div>

div>

/div>

div>

/div>

span style="color:#c21c13;">左边一栏显示的是内存单元的地址

/span>,

span style="color:#c21c13;">中间存放的是内存中的信息,内存中本来放的是二进制的数据,为了方便显示,显示的时候用16进制

/span>,右边一栏是把内存中的信息解读一下,参考价值不高

div>

/div>

div>

/div>

span style="color:#c21c13;">先进后出

/span>)

span style="color:#c21c13;">先进先出

/span>)

div>

/div>

当我们运行main函数时会调用test,test会调用test1,test1会调用test2,使用调用堆栈窗口时,可以观察到函数调用逻辑是怎样的,当程序比较复杂时,通过调用堆栈可以清晰的观察到调用逻辑

到此这篇vs怎么调试程序(vs的调试功能怎么用)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • dos2unix命令离线安装(离线安装dotnetfx35.exe)2026-03-26 23:27:06
  • 网址访问拦截(网址拦截设置)2026-03-26 23:27:06
  • pointnet源码(pointnet代码)2026-03-26 23:27:06
  • 单播地址怎么判断从ip地址(单播地址怎么判断从ip地址开始)2026-03-26 23:27:06
  • 回收站清空的文件能恢复吗(回收站清空的文件能恢复吗电脑)2026-03-26 23:27:06
  • 拆包按哪个键瓦(拆包按什么键)2026-03-26 23:27:06
  • m301h破解无线(m301hwifi解锁)2026-03-26 23:27:06
  • told翻译成中文(Told翻译成中文)2026-03-26 23:27:06
  • 手机wifi反复断开连接怎么回事(手机wifi总是断开连接又重连怎么办)2026-03-26 23:27:06
  • pdf截图怎么截图保存(pdf里截图怎么弄)2026-03-26 23:27:06
  • 全屏图片