当前位置: 首页> 文旅> 艺术 > 用手机免费制作自己的网站_鞍山吧 百度贴吧_大连seo_seo优化内页排名

用手机免费制作自己的网站_鞍山吧 百度贴吧_大连seo_seo优化内页排名

时间:2025/7/10 21:38:15来源:https://blog.csdn.net/2301_80374809/article/details/145321634 浏览次数:0次
用手机免费制作自己的网站_鞍山吧 百度贴吧_大连seo_seo优化内页排名

1.debug和release模式

我们开发内容时的模式一般为debug模式,方便我们进行调试,而release一般是不支持调试的。

在这里插入图片描述
而Linux下的gcc/g++默认都是release环境,是没办法直接用gdb调试的,那么有什么解决办法嘛?

有的,兄弟有的:
在我们之前自己编写的makefile文件中:加入-g

在这里插入图片描述
在这里插入图片描述

这样make出来的可执行程序就满足进行调试的要求哩

2.认识gdb

先创建一个mycode.c

用vim写入:区间求和小程序

#include <stdio.h>
int Sum(int s, int e)
{int result = 0;for(int i = s; i <= e; i++){result += i;}return result;
}
int main()
{int start = 1;int end = 100;printf("I will begin\n");int n = Sum(start, end);printf("running done, result is: [%d-%d]=%d\n", start, end, n);return 0;
}

在这里插入图片描述
这里会显示有错误,因为C89里int是不能放在for循环里的,需要改成:

  • gcc mycode.c -o mycode.c -std=c99 -g

在这里插入图片描述

  • 记得一定要加-g,不然就没法调试哦!!!!

在这里插入图片描述
在这里插入图片描述

  • 输入quit即可退出gdb

3.gdb命令详解

有兄弟发现gdb好难用呀,有木有更加简单好用的呢?
有的,兄弟有的:
安装cgdb

  • sudo yum install -y cgdb

1.行号,断点和断点查看

先使用cgdb+可执行程序名进入cgdb

在这里插入图片描述

  • 上面是代码区
  • 下面是debug区

指令罗列:

    1. b+行号 给某一行打断点
  • 在这里插入图片描述

可见代码区第五行被标红,说明第五行被打了断点

  • 2.info b 查看断点与断点编号
  • 在这里插入图片描述

显示断点编号为1,位置为mycode.c的第五行

  • 3.d + 断点编号(不是行号!!!!!!) 删除断点
  • 在这里插入图片描述

info b 显示没有断点了

    1. run 运行程序(有断点就停下来)
    1. l + 文件名:行号

在这里插入图片描述

2.逐语句和逐过程

在这里插入图片描述
在这里插入图片描述

  • 当前我设置了一个断点,可以看到断点行有一个函数。

走函数还是不走函数呢?

  • n ---------- 不进入函数
  • 在这里插入图片描述

直接走到第17行,跳过函数

  • s-------------- 进入函数
    在这里插入图片描述

可以看到,输入s就进入到了函数内部

3.finish,p,disable,enable

在这里插入图片描述
初始位置在第16行(打断点的位置)按下s后进入函数,再按下finish就直接走完函数进程,回到第16行。

  • finish -----------走完函数进程

在这里插入图片描述

  • p + 变量名(也可以是表达式!!!!) -------------------打印变量名的值

在这里插入图片描述

  • disable + 断点编号---------使断点无效但不删除断点,(可见断点处变黄)

在这里插入图片描述

  • enable + 断点编号 --------------使断点复原

4.c,until ,display,undisplay

在这里插入图片描述

在这里插入图片描述

  • c -------------从一个断点跳到另一个断点

在这里插入图片描述

  • until + 行号n----------从 当前行 直接执行到 第n行

在这里插入图片描述

  • display + 变量名---------------------在 每次gdb操作后都在屏幕上显示变量名的值
  • undisplay + 变量名编号----------------取消display的功能

4.三个调试小技巧

1.watch+变量————————变量发生变化时会提醒

在这里插入图片描述

  • 这里我用watch标记了“result”

在这里插入图片描述

  • 发现一旦result发生改变时就会发出提醒————并提供原值和新值

删除方式和删断点一致

在这里插入图片描述

2.set var+变量= … ————————仅在调试过程中改变变量的值,但退出gdb后值不改变

在这里插入图片描述

  • 这里用 p 查出原来result值为5050,使用 set var result =1,改变了result的值,得出运行结果为1

3.b + 行号 + if (条件)————————在某行设置条件断点

在这里插入图片描述

  • 在第 7 行设下条件断点

在这里插入图片描述

  • 可知i==10时,result为45
关键字:用手机免费制作自己的网站_鞍山吧 百度贴吧_大连seo_seo优化内页排名

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: