VS调试技巧—监视,断点使用精解,及数组的监视技巧

本文详细解释了编程中的bug类型,包括编译错误、链接错误和运行时错误,介绍了Debug与Release模式的区别以及调试过程中的快捷键使用。重点讲解了断点、监视功能,以及如何在调试中观察数组元素的变化,特别是针对一维和二维数组的处理技巧。
摘要由CSDN通过智能技术生成

1.什么是bug?

bug在电脑系统和程序中应用很广,泛指程序漏洞
在VS中写代码的时候,bug可以分为以下几种:
1.编译型错误
这是最好改也最好避免的(就是手滑错误呗)
比如:忘加“ ; ” 用成中文输入法,忘加另一个大括号等
在这里插入图片描述
2.链接型错误:
比如:* 变量名字打错了,找不到匹配的变量
* 用printf()时没有包含头文件:<stdio.h>
* 引入了函数但是函数还没创建
在这里插入图片描述
3.运行时错误
这是真正严重的bug,可能是逻辑漏洞
比如:输出二维数组时候,换行的位置加错( printf(“\n”) )
比如:在一次循环完成的时候,需要将循环中的变量初始化,但没初始化
等等

2.调试

2.1什么是调试?

找问题的过程叫调试,英文叫debug(消灭bug)
可以是逐过程的调试,也可以是隔离和屏蔽代码的⽅式,找到问题所的位置,然后确定错误产⽣的原因,再修复代码

2.2 debug和release

在这里插入图片描述
Debug 称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序;
Release 称为发布版本,它往往是进⾏了各种优化,使得程序在代码⼤⼩和运⾏速度上都是最优的,这个版本是⽤⼾使⽤的,⽆需包含调试信息等。

你从vs上改成release版本,只能运行,但按F10就调试不了了

3.调试快捷键

好像联想电脑上的F10是截屏,以下这些快捷键同理,如果不成功,就带上fn一起按试试

F9:创建和取消断点(断点下面精讲)
F5:启动调试,经常⽤来直接跳到下⼀个断点处
F10:逐过程运行,但不会打入函数内部
F11:逐语句运行,运行到函数时能进入函数内部
ctrl K,ctrl C:变成注释
ctr K,ctrl U:取消注释

4.监视与断点

4.1监视

开始调试后,在菜单栏中【调试】->【窗⼝】->【监视】
一定要开始调试后才有监视!!

在这里插入图片描述

在这里插入图片描述
比如下面这段代码,按F10后,打开监视,输入要监视的变量,就可以观察变量的变化过程和代码的运行过程
在这里插入图片描述

4.2断点(要配监视)

在这里插入图片描述
可以直接用鼠标在相应位置找到相应语句设置断点,也可以选中语句用F9设置
下面来按F5调试:
在这里插入图片描述
可以发现直接跳到了断点处,由test是三可判断:断点处的语句未执行
在这里插入图片描述
接着按F10,代码就从断点处继续往下运行,此后接着按F10,循环中不受断点影响,正常按流程走
下面试试按两次F5:
假设下面一张图是初始状态
在这里插入图片描述
在这里插入图片描述
如果按两次F5,就会直接从上一个断点位置又直接跳到下一次循环中,这个断点处

断点的好处就是避免繁琐的一条一条语句执行,直接来到你感觉有问题的地方

4.3条件断点

右击断点,选择条件
在这里插入图片描述
把test设成6
在这里插入图片描述
条件断点设置完成
F5调试:
在这里插入图片描述
test就直接来到了6

所以条件断点,就是满足条件后才跳到断点所在的语句,如果按F10再执行,test就变为7,这样的好处是在庞大的循环中能直接监视自己想看的区域

4.4举例扫雷中用断点观察函数

在这里插入图片描述
在初始化棋盘的位置打个断点
F11进入函数内部(跟上面的操作一样)
在这里插入图片描述

5.在监视中,打入函数内部后怎样观察数组元素

void test1(int arr1[])
{

}
void test2(int arr2[][5])
{

}
int main()
{
	int arr1[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int arr2[3][5] = { {1,2,3},{5,5,5},{6,6,6} };
	test1(arr1);
	test2(arr2);
}

用这段代码来观察数组内值的变化
现在监视里输入 arr1,arr2
打入test1函数内部
在这里插入图片描述
可以看到,有10个元素的一维数组arr里面只显示第一个数“1”
这时候,在监视里输入“arr1,10"表示要观察10个元素
在这里插入图片描述
此时元素全展现出来了
在监视中输入“arr2"时,打入test2函数内部
在这里插入图片描述
看到元素一溜不分行列的展示
这时候改成“arr2,3"表示要看arr2数组里3行元素

在这里插入图片描述
看效果

所以,监视一维数组时,最好把元素个数加在后面
监视二维数组时,最好把行数加在后面

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值