gorsonpy

导航

基于VS2022的断点debug,基础入门款!

这个作业属于哪个课程 <福州大学2022面向对象程序设计>
这个作业要求在哪里 <2022面向对象程序设计寒假作业1>
这个作业的目标 ==掌握IDE基础调试技术
作业正文 如下
其他参考文献 <VS如何使用断点调试程序?><VS的调试技巧>

前言

  以前我从来没有使用过断点技术,就是知道有这个东西,但是自己程序出问题了还是喜欢手打cout来debug,甚至肉眼debug。我觉得这样的朴素方法对于算法题来说是最好的,能锻炼自己的能力。但是在工程里,还是有必要掌握一些基础的IDE内置调试功能。本文基于VS 2022版本演示。

演示用代码

  非常简单的一段代码,模拟一个循环里a不断加上b的过程。

#include<iostream>
using namespace std;
int main()
{
	int a = 2, b = 3, i = 0;
	for (; i < 5; ++ i)
	{
		a += b;
	}
	cout << a << endl;
	return 0;
}

创建断点

  最基本的打断点,光标定在要打断点语句的上,F9打上断点,我们断在循环头上,效果如下:
创建断点
  可以看到,循环头所在语句出现了红色圆点代表断点,F5运行程序,发现程序在这里停住了:
触发断点
  停住的原因就是触发了断点。同时VS在左下角为我们提供了变量值的监测:

开始调试

  接下来,我们开始调试程序,按一次F10,可以在触发断点的情况下继续下一条语句:
第一次F10
  观察到多了一个箭头表示下一条要运行的语句。 再次按F10,可以发现检测变量值发生了变化,a加上了b。同时箭头继续运动:
1
2
  通过这样打断点,再在触发断点后用F10控制语句继续进行搭配监测变量,就已经构成了最简单的断点调试流程。
还有一些比较好用的语句,因为我目前还没用到,就没有演示了:
快捷键F11:进入当前代码所调用的方法,如果没有则进行下一句。
快捷键F5:跳过本断点。有时候断点看到之后就不想在调试,可以使用F5跳过本次断点。
未触发断点下的F10:直接运行到光标所在位置。

进阶操作-条件断点

   前面的流程已经不错,但还有一些情况不够好,假设一个场景,我们能够确定这个循环出了问题,并且已经定位问题出在最后的两次循环中,那么我们前三次循环应该正常运行就可以,但是我们仍然需要多次按F10才能做到箭头走完前三次循环。 这种情况下,我们可以使用条件断点:
1
条件可以是条件表达式/命中次数,这样就可以设置什么条件下才触发断点,节约时间。

结语

  成熟的IDE都有很好的调试功能,VS尤如此。除去上面所说的,还有自定义断点触发后的宏语句等等功能,因为我目前写的程序还不是很复杂,所以我暂且只介绍比较基础的一些调试技术,今后有用到的话会再补充的。

posted on 2022-01-17 20:04  gorsonpy  阅读(3223)  评论(0编辑  收藏  举报