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 + 抛异常,许多函数调用我们都是可以通过汇编的底层代码来看的。


感谢阅读!

相关推荐
羊小猪~~15 小时前
数据结构C语言描述2(图文结合)--有头单链表,无头单链表(两种方法),链表反转、有序链表构建、排序等操作,考研可看
c语言·数据结构·c++·考研·算法·链表·visual studio
躺不平的理查德1 天前
数据结构-链表【chapter1】【c语言版】
c语言·开发语言·数据结构·链表·visual studio
weixin_537590451 天前
《C++ Primer Plus》中文版第二章习题
开发语言·c++·visual studio
时光追逐者3 天前
Visual Studio 2022:一个功能全面且强大的IDE
ide·c#·.net·.netcore·visual studio
Ru1yi3 天前
【VS+QT】联合开发踩坑记录
开发语言·c++·ide·qt·visual studio
Hellc0073 天前
快速入门:Visual Studio 中的 Docker
docker·eureka·visual studio
yunteng5214 天前
VisualStudio远程编译调试linux_c++程序(二)
linux·c++·ssh·gdb·visual studio·remote
羊小猪~~5 天前
数据结构C语言描述1(图文结合)--顺序表讲解,实现,表达式求值应用,考研可看
java·c语言·数据结构·c++·链表·visual studio code·visual studio
诗和远方ya5 天前
c# 值类型
开发语言·c#·软件工程·visual studio
羊小猪~~6 天前
C/C++语言基础--C++模板与元编程系列三(变量模板、constexpr、萃取等…………)
java·c语言·开发语言·c++·visual studio code·visual studio