VS2022调试讲解,实用调试技巧(快捷键,监视和内存的观察)

在这里插入图片描述@TOC

1.前言(调试须知)

2.两个版本Debug和Release

3.调试技巧

1.VS调试快捷键

2.监视和内存观察

2.1.监视

2.2.内存

4.完结撒花


1.前言(调试须知)

在我们平时编程里避免不了的会写出一些bug,这些bug使我们所写好的代码不能正常运行或者运行结果与我们所设计的不符。如果代码不能正常运行,这里就是我们的代码格式有误,这种错误编写环境一般都会有报错,而如果代码可以正常运行但是结果与我们所期望的不符,这一般都是代码执行逻辑有误,这种错误比较不容易发现,因为可能在运行时大部分结果都符合我们的预期,但会有一两个结果与预期不符,遇到这种bug作为一个专业的程序员我们就需要对代码进行逻辑上的调试,来找到bug所在。下面我们讲解VS2022的实用调试技巧。

2.两个版本Debug和Release

在VS中编写代码的时候就可以看到Debug和Release两个选项。
在这里插入图片描述Debug通常称为调试版本,它包含调试信息并且代码没有任何的优化,而程序员在写代码的时候经常会对代码进行调试,就将这里设置为Debug,这样编译产生的Debug版本可执行程序是可以直接进行调试的。
Release通常称为发行版本,顾名思义,它是对代码进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好的使用。在程序员写完代码再对程序进行测试,直到程序的质量符合交付给用户使用的标准,这个时候就会设置为Release,编译产生的Release版本可执行程序,这个版本事用户使用的,没有包含可调式信息所以是不能进行调试的。
因此我们要对代码进行调试的话是必须在Debug版本下进行调试。
在这里插入图片描述Release比起Debug的执行程序内存是要小很多

3.调试技巧

1.VS调试快捷键

F9:创建断点和取消断点
断点的作用是可以在程序任意位置设置断点,打上断点后点击F5进行调试,点击F5就可以使得程序直接执行到打断点的位置暂停执行,避免之前的代码,直接对认为有问题的代码进行调试,简化调试流程。
在这里插入图片描述设置断点也可以直接左键点击所要设置断点的一行进行断点的设置。
F5:启动调试
在Debug版本下我们按F5即可对代码开始进行调试,一般是和F9配合使用。
如果直接点击F5开始对代码进行调试,调试流程就是从主函数进入开始按照代码逻辑直接向下进行调试一直到代码结束,整个调试过程会直接过去,而配合F9设置断点使用,点击F5进行调试代码将直接进行到断点设置的位置暂停,之后再点击F10可以逐语句对代码进行观察。
F10:逐过程
逐过程,通常用来处理一个过程,一个过程可以是函数的一次调用,也可以是一段语句。
比如我们打算调试设置断点点击F5之后,调试过程将直接调式到我们所设置断点的位置,之后的调试我们就可以点击F10一步一步的向下对代码进行调试。
如果我们打算调试而直接点击了F10,那么调试将会暂停在主函数位置,之后就需要我们点击F10,来对代码一步一步进行调试,如下图:
在这里插入图片描述F11:逐语句
逐语句,就是每次都可以执行一条语句,这个快捷键可以让我们进入函数内部,在调用函数的地方如果想进入调用函数的内部观察细节就必须使用F11,如果使用F10将直接完成函数的调用。
Ctrl+F5:开始执行不调试
这里我们需要注意,如果我们没有设置断点,点击F5进行调试的话,代码就会直接从主函数到代码执行完毕快速调试一边,在VS2022中,我们直接点击F5调试完成之后也是会有执行结束的程序框出现,但是在其他编译器下面可能就不会显示,所以我们要执行代码的时候不要只点击F5,Ctrl+F5才是只执行代码不会进行调试。
上面我只是介绍了调试中最常用的快捷键,如果还要学习更多可以点击下面链接进行学习:
VS更多快捷键了解

2.监视和内存观察

2.1.监视

我们要进行调试只是掌握快捷键的使用还是不行的,在调试过程中我们如果想要观察上下文环境中变量运行时所变化的值,我们需要在调试过程中打开监视窗口进行观察。
在这里插入图片描述注意监视窗口,内存等是必须在调试过程中才会出现
可以看到监视一共可以打开四个窗口,我们任意打开一个,然后输入想要观察的变量即可,如下图所示:
在这里插入图片描述这里我们输入了i,就可以观察i在循环过程中的变化。当然我们也都还可以添加代码中其他的变量来进行观察变量值,也可以观察数组,或者观察变量的地址,如下图所示:
在这里插入图片描述

2.2.内存

在调试的过程中,我们点击[调试] -> [窗口] -> [内存],即可打开内存窗口进行观察,如下图所示:
在这里插入图片描述在左上方列中,我们可以点击选择列数,如果把列数设置为4,一列代表一个字节,一行即代表4个字节,即一个整形单位也就是代表一个整形变量的数值.
在这里插入图片描述正如上图中表示,内存栏中左边表示的是在X64环境下的地址,中间表示每个地址所对应存储的东西,在计算机中是以二进制进行存储,而为了方便显示使用的是十六进制进行显示.右边是将数据进行简单分析显示的一串乱码,仅仅有参考作用.
在这里插入图片描述众所周知,数组名即为首元素的地址,在我们要观察变量在内存中的存储时,需要在输入框里输入变量的地址,如上图所示,这里我们就拿数组arr为例,直接输入数组名即可,因为数组的类型为整形四个字节,所以我们把列数设置为4,方便之后的观察.
在这里插入图片描述如上图所示,接下来我们就可以调试观察数组在内存中的变化,这里也给大家说一下每个地址对应的数值是按照一个字节倒着进行展示的,比如arr[0],也就是上图的第一行地址为0X00000033418FF908对应的数值为以,即00 00 00 01,而图中是按照一个字节倒着显示的.

4.完结撒花

VS2022调试讲解,小伙伴们如果还有什么疑问的话可以私信或者留言给我,我会尽力帮你们解决问题,如果对你有帮助也可以三连支持一波,谢谢啦,以后我也会分享其他更多有用的知识,我们一起学习共同进步
在这里插入图片描述

  • 30
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值