VS中的调试

目录

一、Debug和Release

1.Debug

2.Relase

二、必备快捷键

1.F9:创建和取消断点

2.F5:启动调试(逐断点)

3.F10:逐过程

4.F11:逐语句

5.CTRL+F5:开始执行不调试

三、监视和内存

1.监视

2.内存

四、常见错误类型

1.编译型错误

2.链接型错误

3.运行时错误

五、调试举例


一、Debug和Release

1.Debug

        调试版本,编译器不优化,内存占用大

2.Relase

        发布版本,编译器将代码大小和运行速度优化至最佳,内存占用小


二、必备快捷键

1.F9:创建和取消断点

        断点的作用是可以在程序的任意位置设置暂停点,使程序执行到想要的位置暂停执行,然后通过监视、逐过程或逐语句观察代码执行细节

2.F5:启动调试(逐断点)

        第一次按F5,启动调试并跳到第一个断点。之后每按一次F5,则跳到下一个断点

        注意:按F5若没有断点,则直接跳到return结尾

3.F10:逐过程

        第一次按F10,启动调试并跳到main函数的下一行。之后每按一次F10,则跳到下一行

4.F11:逐语句

        第一次按F11,启动调试并跳到main函数的下一条语句。之后每按一次F11,则跳到下一条语句

        注意:若想进入函数内部查看具体细节,只能用F11(逐语句),不能用F10(逐过程)

5.CTRL+F5:开始执行不调试

        便于快速执行代码,省去用鼠标点击的时间

        更多详细快捷键:VS中常用的快捷键_vs快捷键-CSDN博客


三、监视和内存

1.监视

        在调试环境下,【调试】-->【窗口】-->【监视】--> 任意监视窗口

        注:一定要开始调试才会有监视窗口!

2.内存

        在调试环境下,【调试】-->【窗口】-->【内存】--> 任意内存窗口

        除了监视和内存,还有反汇编和寄存器,可以自行探索


四、常见错误类型

1.编译型错误

        一般为语法错误,编译器会直接标出来,最好改的bug

2.链接型错误

        一般为函数未定义,头文件未包含,引用的库不存在等,点击错误信息可以定位到问题所在

3.运行时错误

        这种错误千变万化,且编译器一般不会报错,需要通过调试定位解决


五、调试举例

        下面代码在vs2022x86Debug下运行

#include <stdio.h>
int main()
{
	int i = 0;
	int arr[10] = { 0 };
	for (i = 0; i <= 12; i++)
	{
		arr[i] = 0;
		printf("你好中国\n");
	}
	return 0;
}

        运行结果:死循环打印“你好中国”

        1.打断点并按F5开始调试

        2.一步一步按F10调试,添加监视arri和内存arr

        3.观察到每次i被修改时,0x00ADFE18地址处的数据被同步修改

        4.最后得出结论,iarr[12]的内存地址相同,修改arr[12]的值会使i的值同步改变,使i永远无法大于12,造成死循环

最后,感谢大家观看!

  • 24
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值