VS2022中的调试

目录

前言:

使用:

调试:


前言:

在日益繁忙的工作环境中,选择合适的编程工具已成为提升开发者工作效率的关键。不同的工具能够帮助我们简化代码编写、自动化任务、提升调试速度,甚至让团队协作更加顺畅。那么,哪款编程工具让你的工作效率翻倍?是智能的代码编辑器,强大的版本控制工具,还是那些让你事半功倍的自动化脚本?让我们一起分享、探讨,找到能让效率飞升的秘密武器。

为了提高咱们的日常编程的效率,好的编译器肯定是少不了的,今天我们着重介绍VS2022这款编译器。

使用:

首先是VS2022的日常使用,不妨有初学的小伙伴一开始使用vs的时候,会发现VS有一个功能是自动弹出你可能需要的变量或头文件,如下:

这种我们可以通过Tab或者回车,选中我们需要的文件或者变量,这是自动弹出的方便性。我们如果自己创建了一个变量,vs也是可以自动弹出,如:

报错和警告也同时具有,如果我们出现了语法问题,在对应的语法上下文就会出现对应的红色波浪线等:

警告方面比如,我们输入scanf,但是没有对返回值进行接受,就会报警告:

对于注释部分,简单的快捷方式如ctrl + k + c,快速取消注释如ctrl + k + u就可以快速取消。

这是日常使用部分,我们今天的重点是调试部分,因为日常编码部分我们是可以快速检查,通过快速跑读代码以及正常的报错是可以提高编码的速度的,但是一个程序的交付,还有看最终的调试部分,所以重点是调试。

调试:

调试部分我们首先引出一个话题,什么是debug 什么是release?

这是两种版本,release是发行版本,在Linux章节如果我们需要调试,就需要gcc -g ...生成debug版本,包含调试信息我们才可以调试,但是VS这里即便是release版本我们也是可以执行调试的:

左上角的就是Release,我们建议,调试的时候使用debug版本,因为release版本本来也不是调试的,而且如果将release作为调试的话,优化是比较严重的,并且在Vs2022的大体上,优化更重,比如拷贝 + 构造会直接优化成构造都是简单的,优化一旦加大我们还不容易看懂。

这是debug和release的区别。

那么调试我们主要介绍这些调试技巧:F10 F11 F5 + F9 监视窗口 内存窗口的使用,这些操作已经足以覆盖我们的日常使用了。

咱们调试的时候,分为逐语句调试和逐过程调试,最直接的说就是经过一条函数调用语句的时候,会不会进入函数体。

F11是逐语句,我们平时可以直接使用F10或者F11进入调试,F10是逐过程。

那么F5 + F9的意思是,它们经常搭配到一起使用,但是F5如果直接按就有点类似于直接运行程序,这是因为没有断点,F9用来打断点,如果有了断点,F5默认将程序执行到该部分:

就像这样。

监视窗口:

调试开始之后,我们可以在窗口那里找到监视窗口,但是这里还是温馨提示,监视窗口有的时候并不是太准确,所以应该结合打印结果来看,监视窗口我们可以看到变量的值,类型,甚至可以直接&变量,这些操作都是被允许的,部分操作是不太被允许的,比如对右值取地址,即超出语法范围的操作,甚至就是说,可以在监视窗口执行简单的运算。

内存窗口:

同样是在窗口部分点开,我们在里面一般都是通过地址来学习程序的哪里应该怎么做。

一般都是要变量初始化结束之后,我们才能看到对应的地址,但是地址并不是万能的,比如右值,有的右值是将亡值,但是在内存空间是存在自己的空间的,我们没有办法看到,但是不能说它没有空间。

汇编:

汇编有的时候也是我们的一大学习利器,我们可以通过汇编来谈底层,比如new的底层为什么是malloc + 初始化 + 抛异常,为什么new = operator new + 抛异常,许多函数调用我们都是可以通过汇编的底层代码来看的。


感谢阅读!

相关推荐
QAQ小菜鸟16 小时前
二、Visual Studio 2026如何创建C语言项目
visual studio
小灰灰搞电子1 天前
Qt 开发环境选择Qt Creator、Visual Studio还是 VS Code?
开发语言·qt·visual studio
whm27771 天前
Visual Basic Data控件
windows·visual studio
游荡的小狼1 天前
Visual Studio Community 2022 安装
visual studio
bkspiderx2 天前
Visual Studio 2026安装常见问题与解决方案
ide·visual studio·vs2026·vc2026安装
bkspiderx2 天前
Visual Studio 2026 安装指南(2025年最新状态+通用流程)
ide·安装·visual studio·vs2026
无限进步_2 天前
【C语言&数据结构】有效的括号:栈数据结构的经典应用
c语言·开发语言·数据结构·c++·git·github·visual studio
Lv11770082 天前
Visual Studio中的静态成员
笔记·c#·visual studio
charlie1145141912 天前
深入解构:MSVC 调试机制与 Visual Studio 调试器原理
c++·ide·windows·学习·visual studio·调试·现代c++
Lv11770082 天前
Visual Studio 中的密封类和静态类
ide·笔记·c#·visual studio