VS2019实用的调试技巧
目录
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比较实用的调试方法,如果对你有帮助的话别忘了点赞呀!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!