实用调试技巧

简介: 实用调试技巧

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

1.什么是bug

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

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

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

3.调试的步骤

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

3.1调试的快捷键

F5:

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

F9:

创建断点和取消断点

断点的重要作用,可以在程序的任意位置设置断点。

这样就可以使得程序在想要的位置随意停止执行,继而一步步执行下去。

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

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

#include<stdio.h>
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;
}

我们再点击条件

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

F10:

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

F11:

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

CTRL + F5 :

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

3.2监视

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

#include<stdio.h>
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;
}

我们进入调试,

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

我们需要再“添加要监视的项的位置输入arr[i]”,按f11就可以看到运行的结果

3.3反汇编

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

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

3.4内存

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

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

4.优秀的代码

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

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

目录
相关文章
|
6月前
|
C++
VS调试技巧
VS调试技巧
34 0
|
3月前
|
JavaScript 前端开发
调试技巧
【8月更文挑战第28天】
47 9
|
5月前
实用调试技巧(2)
实用调试技巧(2)
37 0
|
6月前
|
IDE 开发工具
掌握条件断点,调试技巧大揭秘
掌握条件断点,调试技巧大揭秘
114 0
|
程序员 C语言
|
程序员 编译器
实用调试技巧(上)
实用调试技巧
|
程序员 编译器
|
程序员 编译器