VS2019实用的调试技巧

目录

1.调试的步骤

2.观察变量内容的两种方法

3.函数调用的观察方法


1.调试的步骤

正常来讲我们调试一个程序需要如下几步:

1.运行之后发现程序有问题。

2.找到预估有问题的部分

3.对这部分语句进行逐语句(逐过程)运行,并观察变量值或者其他内容的变化。

下面对着一段代码进行分析

1 #include<stdio.h>
2 int main()
3 {
4	int arr[10] = { 0 };
5	int i;
6	for (i = 0; i < 10; i++)
7	{
8		arr[i] = i;
9	}
10	for (i = 0; i < 10; i++)
11	{
12		printf("%d ", arr[i]);
13	}
14	return 0;
15  }

假设这段代码第12行,循环的时候出现了问题。

1.发现程序出现问题

这个运行一下就能发现。。。不多说。

2.找到预估有问题的部分

第二步相对于第三步来说是一个宏观的过程,是找到有问题的一个模块的过程。

很明显我们预估在第12行开始循环的时候出现了问题,我们要将第十二行之前的语句全都执行之后,然后再一步一步执行循环语句。

要执行第12行语句之前的所有语句就要掌握两个快捷键,F5和F9。

(1)首先将光标放在第12行的位置,然后按F9,你会看到12行前的断点。

(2)按F5键,执行前面所有代码直到遇到断点处截止。

 我们会发现代码已经执行到第12行了。

如果你认为是循环第5次出现的问题,那怎么跳过前四次循环呢?

鼠标右键点击小圆点-->条件-->输入i==5

这时再按F5,就默认执行了上面代码和五次循环

 

 3.对这部分语句进行逐语句(逐过程)运行,并观察变量值或者其他内容的变化。

第三步,主过程或者逐语句调试

F10:逐过程

F11:逐语句

按F10,你会发现有调试光标出现,并且向下移动一格执行一条语句,每按一次F10都会向下执行一次。

连续按几次F10,就会发现代码在一步一步地执行,你就可以一步步观察变量的变化 ,看到这里请不要着急,之后我会讲解如何观察变量值得变化。

F11在没有自定义函数的时候和F10的作用是一样的,当你自定义函数时,按F10会直接执行完这个函数,但是按F11可以进入到函数的内部。

 

当我们执行到第9行的时候,按F11调试光标会进入到函数内部,即第3行。但是按F10的话调试光标会直接进入第10行,默认test这个函数已经执行结束了。 

2.观察变量内容的两种方法

1.监视窗口

(1)首先按F10使代码进入调试的状态

(2)点击调试-->窗口-->监视

 这时候你会发现左下方有一个监视窗口,在名称部分输入你想要观察的变量,按F10向下执行程序,你就会看到随着程序的一步步执行,变量值的变化。

2.我们也可以用内存窗口来观察变量值的变化。 

 (1)按F10开始调试

(2)调试-->窗口-->内存

我们在地址处输入arr,再按回车键,这里的0x026FFB3C显示的就是数组的地址,由于数组是一段连续的内存空间,所以我们可以清楚地看到数组内元素值的变化。

3.函数调用的观察方法

void test1()
{
	printf("haha\n");
}
void test2()
{
	test1();
}
void test3()
{
	test2();
}
int main()
{
	test3();
	return 0;
}

 看这样一段代码,我们要了解函数的调用方式。

调试-->窗口-->调用堆栈

按F10执行代码

 

 新调用的函数会在最上方出现,这里表示的意思是main调用了test3,test3调用了test2,依次类推。当函数执行结束后,调用堆栈中函数名会消失。

 

以上就是我总结的VS2019比较实用的调试方法,如果对你有帮助的话别忘了点赞呀!

 

 

 

posted @   卖寂寞的小男孩  阅读(1591)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示