1-2 VS2019常用调试方法(断点设置、条件断点、调试按钮、逐过程、逐语句、监视变量、快速监视)

文章目录

  • 前言
    • 1-打印数据
    • 2-普通断点
      • 2-1断点快捷键
    • 3-条件断点与条件追踪
    • 4-单步调试
    • 5-添加监视
      • 5-1快速监视

前言

主要调试方法:

1、打印数据 2、普通断点 3、条件断点与条件追踪 4、单步调试 5、添加监视


1-打印数据

最基础的调试方法就是在程序运行过程中打印数据。

#include
using namespace std;

int main()
{
	int a = 0;
	for (int i = 0; i < 10; i++)
	{
		a = a + i;
		if (i == 5)
			cout << "debug: i==5, a=" << a << endl;
	}
    cout << a << endl;
	return 0;
}

输出:
debug: i==5, a=15
45 

在上面程序中,需要注意的是如果if语句输出的信息是仅仅给程序员看的,在release版本中不希望出现,就可以给if语句加上宏。这样,在release版本中if语句就会直接变成灰色不会执行。

int main()
{
	int a = 0;
	for (int i = 0; i < 10; i++)
	{
		a = a + i;
#ifdef _DEBUG
		if (i == 5)
			cout << "debug: i==5, a=" << a << endl;
#endif // _DEBUG
	}
	cout << a << endl;
	return 0;
}
debug模式下输出:
debug: i==5, a=15
45
    
release模式下输出:
45

2-普通断点

断点调试都要在debug模式下,release版本中是直接跳过断点的

2-1断点快捷键

F9-插入断点

Ctrl+F9- 禁用断点

Ctrl+Shift+F9-删除所有断点


3-条件断点与条件追踪

使用普通断点进行调试时,可以为断点添加条件,就是满足什么条件时,这个断点才会生效,用在循环里效果显著。有两种方式设置断点条件:

1)鼠标在断点上方悬停会出现设置按钮;

1-2 VS2019常用调试方法(断点设置、条件断点、调试按钮、逐过程、逐语句、监视变量、快速监视)_第1张图片

2)直接在断点行右键【断点】【条件】

1-2 VS2019常用调试方法(断点设置、条件断点、调试按钮、逐过程、逐语句、监视变量、快速监视)_第2张图片

设置断点条件后,断点提示信息会更新如下:

1-2 VS2019常用调试方法(断点设置、条件断点、调试按钮、逐过程、逐语句、监视变量、快速监视)_第3张图片

还可以在到达条件断点时,添加在该断点时的操作,如下:

1-2 VS2019常用调试方法(断点设置、条件断点、调试按钮、逐过程、逐语句、监视变量、快速监视)_第4张图片

注意在操作输出时,变量必须加{},否则就会输出为字符串

另外还可以使用$来调用系统本身的变量,如线程、进程来输出


4-单步调试

主要区分就是几个调试按钮

逐过程(F10):遇到函数不会进入

逐语句(F11):遇到函数会进入

对于单行不可展开的语句,逐过程与逐语句发挥作用相同

跳出(shift+F11):进入函数后想跳出,就要适用

在这里插入图片描述

参考:visual studio 2019 :逐过程逐语句Debug


5-添加监视

选中变量【添加监视】

5-1快速监视

在数组传进函数中时,通常传入数组地址,将数组的指针添加监视只能看到当前指向的元素,如果进行【快速监视】就能看到当前指向元素后面的信息。

下面的图就是在局部变量中指针pArr只能显示当前指向的元素,如果想显示更多信息就需要使用快速监视

1-2 VS2019常用调试方法(断点设置、条件断点、调试按钮、逐过程、逐语句、监视变量、快速监视)_第5张图片

选中指针pArr,右键【快速监视】,在指针后面输入,5,点击【重新计算】,会显示从当前元素开始向后共5个元素,如果逗号后面的数字太大使数组越界,就是混乱数据了。

1-2 VS2019常用调试方法(断点设置、条件断点、调试按钮、逐过程、逐语句、监视变量、快速监视)_第6张图片

你可能感兴趣的:(#,C++百万并发网络通信,C++学习,c++)