实用调试技巧

个人主页:点我进入主页

专栏分类:C语言初阶      C语言程序设计————KTV       C语言小游戏     C语言进阶

欢迎大家点赞,评论,收藏。

一起努力,一起奔赴大厂。

  

目录

 1.什么是bug

2.我们是如何调试代码的

3.调试的步骤

3.1调试的快捷键

F5:

F9:

F10:

F11:

CTRL + F5 :

 3.2监视

 3.3反汇编

3.4内存

4.优秀的代码


     今天主要讲的是实用的调试技巧,你还在为了写代码时候出现bug而烦恼吗,让我们往下看,学会调试。据统计一位程序员有百分之八十的时间在调试找bug,百分之二十的时间在写代码,而初学者百分之八十的时间在写代码,百分之二十的时间在调试找bug。

 1.什么是bug

 第一次被发现的导致计算机错误的飞蛾,也就是第一个计算机错误。

2.我们是如何调试代码的

         经过一次又一次的修改,修改正确全靠运气的佛系调试显然不适合我们,我们需要的是一个正确,方便,高效的解决方式,因此调试显得格外重要。所以想要学会调试的第一步,拒绝佛系调试。

3.调试的步骤

  • 发现程序错误的存在
  • 以隔离、消除等方式对错误进行定位
  • 确定错误产生的原因
  • 提出纠正错误的解决办法
  • 对程序错误予以改正,重新测试
     

3.1调试的快捷键

F5:

启动调试,经常用来直接跳到下一个断点处(可以和F9配合使用,当设置断点后并且在调试模式也就是按F11或F10后点击F5就会到断点处)

F9:

创建断点和取消断点
断点的重要作用,可以在程序的任意位置设置断点。
这样就可以使得程序在想要的位置随意停止执行,继而一步步执行下去。

主要就是设置和取消断点,其中有一个条件断点

比如在代码中我们想设置一个条件断点

#include
int main()
{
	int i = 0;
	int sum = 0;//保存最终结果
	int n = 0;
	int ret = 1;//保存n的阶乘
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		int j = 0;
		for (j = 1; j <= i; j++)
		{
			ret *= j;
		}
		sum += ret;
	}
	printf("%d\n", sum);
	return 0;
}

实用调试技巧_第1张图片

我们再点击条件 

实用调试技巧_第2张图片

         最后输入条件例如i==5,设置完成后点击关闭,进入调试按F5直接运行到这里且i==5,这样的主要作用是如果我们需要调试时中间的数有问题,这就需要我们使用此操作,例如0到2000中我们想看1000时候的过程,难道我们还一次一次的按F11吗,可想而知,这样是行不通的,这时候我们掏出我们的断点加条件你会感觉实用调试技巧_第3张图片

F10:

逐过程,通常用来处理一个过程,一个过程可以是一次函数调用,或者是一条语句。(这里就是当我们用到函数时,函数确定没有问题,不想进入函数的内部,可以按F10

F11:

逐语句,就是每次都执行一条语句,但是这个快捷键可以使我们的执行逻辑进入函数内部(这是最常用的,一次一条代码,可以进入函数的内部,很适合我们查找问题)。 

CTRL + F5 :

开始执行不调试,如果你想让程序直接运行起来而不调试就可以直接使用。(这里就是运行程序的快捷键

 3.2监视

        单单学会这些快捷键还不足以让我们学会调试,监视是一个非常重要的功能,这需要我们在调试模式下进行,例如代码:

#include
int main()
{
	int arr[5] = { 0,1,2,3,4 };
	int i = 0;
	for (i = 0; i < 5; i++)
	{
		printf("%d", arr[i]);
	}
	return 0;
}

我们进入调试,实用调试技巧_第4张图片

 点击调试———窗口————监视————再选择任意一个监视窗口,例如我们想监视数组arr【i】的值

实用调试技巧_第5张图片

 我们需要再“添加要监视的项的位置输入arr[i]”,按f11就可以看到运行的结果实用调试技巧_第6张图片

 3.3反汇编

实用调试技巧_第7张图片

 同样需要我们进入调试模式点击调试————窗口————反汇编。然后我们就可以看到实用调试技巧_第8张图片

 代码是如何在内存中的存储。

3.4内存

实用调试技巧_第9张图片

 同样需要我们进入调试模式点击调试————窗口————内存。然后我们就可以看到

实用调试技巧_第10张图片

 我们输入&sum其中0x00007FF6D87F1880就是sum的地址。

4.优秀的代码

  • 1. 代码运行正常
  • 2. bug很少
  • 3. 效率高
  • 4. 可读性高
  • 5. 可维护性高
  • 6. 注释清晰
  • 7. 文档齐全

 最后希望大家可以学到东西,一起加油,一起奔赴大厂!!!别忘了点赞,评论,收藏。

你可能感兴趣的:(#,C语言初阶,算法)