VS2019调试入门:10个让新手效率翻倍的实用技巧

今天给大家分享VS2019的一些调试小技巧,帮助你快速上手。

“你是否还在用Console.WriteLine调试代码?掌握这些VS2019调试神器,轻松告别低效抓虫!无需复杂配置,5分钟上手实战技巧!”

目录

一、什么是调试(debug)?

1.Debug和Release

二、基础但超实用的调试功能

1. 设置断点(F9)与逐语句执行(F11)

2. 快速查看变量值(悬停/鼠标框选)

3. 监视窗口(Ctrl+Alt+W, 1)

三、新手必会的调试快捷键 

四、监视和内存观察 

​编辑 五、调试示例


一、什么是调试(debug)?

当我们发现程序中存在的问题的时候,那下⼀步就是找到问题,并修复问题。 这个找问题的过程叫称为调试,英⽂叫debug(消灭bug)的意思。

 调试⼀个程序,⾸先是承认出现了问题,然后通过各种⼿段去定位问题的位置,可能是逐过程的调 试,也可能是隔离和屏蔽代码的⽅式,找到问题所的位置,然后确定错误产⽣的原因,再修复代码, 重新测试。

1.Debug和Release

Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序; 程序员在写代码的时候,需要经常性的调试代码,就将这⾥设置为 debug ,这样编译产⽣的是 debug 版本的可执⾏程序,其中包含调试信息,是可以直接调试的。

Release称为发布版本,它往往是进⾏了各种优化,使得程序在代码⼤⼩和运⾏速度上都是最优的, 以便⽤⼾很好地使⽤。当程序员写完代码,测试再对程序进⾏测试,直到程序的质量符合交付给⽤⼾ 使⽤的标准,这个时候就会设置为 release ,编译产⽣的就是 release 版本的可执⾏程序,这个 版本是⽤⼾使⽤的,⽆需包含调试信息等。

二、基础但超实用的调试功能

1. 设置断点(F9)与逐语句执行(F11)
  • 操作:在代码行号左侧点击,或按F9设置断点;按F11逐行跟踪执行流程。

  • 场景:调试登录逻辑时,逐行验证用户输入是否正确传递。

2. 快速查看变量值(悬停/鼠标框选)
  • 鼠标悬停变量直接显示当前值。

  • 高级技巧:拖动选中表达式(如userList.Count > 0),悬停显示结果。

3. 监视窗口(Ctrl+Alt+W, 1)
  • 添加变量或复杂表达式(如price * quantity),实时监控变化。

  • 右键功能:修改变量值模拟不同场景。

三、新手必会的调试快捷键 

调试最常使⽤的⼏个快捷键:

 F9:创建断点和取消断点

 断点的作⽤是可以在程序的任意位置设置断点,打上断点就可以使得程序执⾏到想要的位置暂定执 ⾏,接下来我们就可以使⽤F10,F11这些快捷键,观察代码的执⾏细节。

条件断点:满⾜这个条件,才触发断点

F5:启动调试,经常⽤来直接跳到下⼀个断点处,⼀般是和F9配合使⽤。

F10:逐过程,通常⽤来处理⼀个过程,⼀个过程可以是⼀次函数调⽤,或者是⼀条语句。

 F11:逐语句,就是每次都执⾏⼀条语句,但是这个快捷键可以使我们的执⾏逻辑进⼊函数内部。在函 数调⽤的地⽅,想进⼊函数观察细节,必须使⽤F11,如果使⽤F10,直接完成函数调⽤。

 CTRL + F5:开始执⾏不调试,如果你想让程序直接运⾏起来⽽不调试就可以直接使⽤。

VS更多快捷键了解:http://blog.youkuaiyun.com/mrlisky/article/details/72622009

四、监视和内存观察 

监视和内存观察可以很好的让你发现哪里逻辑出现问题,通过观察某一个变量来确定问题,以便更好的解决问题

这些观察的前提条件⼀定是开始调试后观察

示例:

#include <stdio.h>
int main()
{
 int arr[10] = { 0 };
 int num = 100;
 char c = 'w';
 int i = 0;
 for (i = 0; i < 10; i++)
 {
 arr[i] = i;
 }
 return 0;
}

F10开始调试后,在菜单栏中【调试】->【窗⼝】->【监视】,打开任意⼀个监视窗⼝,输⼊想要观察的对 象就⾏。

打开监视窗⼝:  

以上操作就可以监视变量的变化,通过F10一步一步走来观察变量的变化是否和预期的结果一样。

我们还可以通过看内存来观察变量的储存情况: 还是在【调试】->【窗⼝】-> 【内存】

 五、调试示例

示例:求 1!+2!+3!+4!+...n! 的和,请看下⾯的代码:

#include <stdio.h>
int main()
{
	int n;
	int sum = 0;
	int ret = 1;
	scanf("%d", &n);
	int i = 0;
	for (i = 1; i <= n; i++)
	{
		int j = 1;
		for (j = 1; j <= i; j++)
		{
			ret *= j;
		}
		sum += ret;
	}
	printf("%d", sum);
	return 0;
}

运行结果:

输入一个3,就是1!+2!+3!,答案等于15,大家觉得对吗?我们仔细一算应该是9的,那为什么是15呢,这时候就可以调试来观察变量的变化发现问题的所在之处。

这是我们一开始的值,n输入为3,按F10一步一步调试

这里我们可以发现当i等于3,j等于1是,ret的值还是为2,这说明了ret的值在计算3!时初始值不是1,这就相当于3!=2*2*3=12,再加上1!和2!就等于15了 ,所以我们应该要在每次进入第二次循环的时候就将ret的值给初始化为1,改动如下:

int main()
{
	int n;
	int sum = 0;
	scanf("%d", &n);
	int i = 0;
	int j = 1;
	for (i = 1; i <= n; i++)
	{
        int ret = 1;
		for (j = 1; j <= i; j++)
		{
			ret *= j;
		}
		sum += ret;
	}
	printf("%d", sum);
	return 0;
}

运行结果:

 这样答案就正确了,这就是调试的使用,当我们没有发现问题,但是运行结果错误时,就可以进行调试来发现问题所在。

“这些技巧只是VS2019调试的冰山一角!立即打开你的项目,尝试用F10/F11替代Console.WriteLine,感受高效调试的魅力吧!遇到问题?欢迎评论区留言交流~” 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习编程的gas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值