调试器gdb

简介: 调试器gdb



一、调试

gdb是Linux下的一种调试工具。我们可以使用命令:sudo yum install -y gdb来安装gdb。

1、前言

1、程序的发布方式有两种,debug模式和release模式,而想进行调试只能在发布方式为debug版本下。

2、Linux 通过gcc/g++编译出来的二进制程序,默认是release模式,这也就意味着程序无法调试。

3、在Linux下要使用gdb调试,必须在源代码生成二进制程序的时候,加上 -g 选项。

2、 debug和release

默认情况下,gdb无法进行对现在发布的程序进行调试(默认是release版本)。

首先我们先写一段下面需要使用的代码

然后我们在Makefile中先不加-g选项。这样是不能调试的:

我们可以看到,debug版本比release版本要大一些,因为debug版本中含有调试信息。

二、基本操作

gdb会记录最近的一条命令,如果命令无变化,可以直接回车。

对于下面的指令足以应付我们日常遇到的一些代码进行相关的调试,解决遇到的问题,同时对于gdb的基本使用我们也能够基本掌握

1、退出 quit

功能:退出gdb。

演示:

2、开始调试 r

功能:使程序开始进行调试(也可以使用run)(调试运行,在断点处停下来)

演示:

3、打断点 b

功能:在某一行打上一个断点

语法: b(break)  行数

演示:

4、查看断点 info b

功能:查看断点的各种信息。(查看当前设置了哪些断点)

演示:

5、查看代码 l

list/l 行号:显示从第n行开始的源代码,每次显示10行,若n未给出则默认从上次的位置往下显示。

list/l 函数名:列出某个函数的源代码。

6、删除断点 d

功能:删除某一行的断点。

语法:d  断点编号

演示:

7、逐过程 n

功能:逐过程调试。使程序一步一步向下执行。相当于vs中的 f10。也可以用next。

演示:

8、打印变量内容 p

功能:打印变量的值。

语法:p/print  变量名。

演示:

9、逐语句(进入函数) s

功能:逐语句调试。相当于vs的f11。

演示:

10、查看函数调用堆栈 bt

功能:查看各级函数调用及参数。

演示:

11、跑完函数 finish

功能:执行完当前正在调用的函数后停下来(不能是主函数)。

12、常显示 dispaly

功能:将变量加入常显示(每次停下来都显示它的值)。类似于监视。

语法:display  变量名

13、取消常显示 undisplay

功能:取消指定编号变量的常显示。

语法:display 编号

演示:

14、跳转到指定行 until

功能:

语法:until 行号。

演示:

15、跳转到下一个断点 c

功能:运行到下一个断点处。

演示:

16、disable和enable

disable 断点编号 :禁用指定编号的断点。

enable 断点编号  :启用指定编号的断点。

三、总结

至此,所有Linux下的基础工具都已经学完了。有了这些工具,我们可以在Linux下进行代码的编写,编译和调试。使我们在Linux下编写代码显得十分方便。

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
目录
相关文章
|
6月前
|
NoSQL Linux 程序员
Linux:gdb调试器的解析+使用(超详细版)
Linux:gdb调试器的解析+使用(超详细版)
272 1
|
5月前
|
NoSQL Linux C语言
GDB:强大的GNU调试器
GDB:强大的GNU调试器
|
5月前
|
NoSQL 编译器 Linux
【Linux】--- Linux编译器-gcc/g++、调试器-gdb、项目自动化构建工具-make/Makefile 使用
【Linux】--- Linux编译器-gcc/g++、调试器-gdb、项目自动化构建工具-make/Makefile 使用
87 0
|
6月前
|
NoSQL Java Unix
Linux:调试器 - gdb
Linux:调试器 - gdb
68 1
|
6月前
|
NoSQL Linux 程序员
Linux调试器--gdb的介绍以及使用
Linux调试器--gdb的介绍以及使用
|
6月前
|
NoSQL Linux C语言
【Linux】Linux调试器-gdb使用
【Linux】Linux调试器-gdb使用
44 0
|
6月前
|
NoSQL IDE Linux
Linux的学习之路:8、Linux调试器-gdb使用
Linux的学习之路:8、Linux调试器-gdb使用
70 0
|
6月前
|
NoSQL Linux 编译器
【Linux】——调试器-gdb的使用
【Linux】——调试器-gdb的使用
|
6月前
|
NoSQL Linux C语言
【Linux】Linux调试器-gdb使用
【Linux】Linux调试器-gdb使用
【Linux】Linux调试器-gdb使用
|
6月前
|
NoSQL Linux 编译器
【Linux工具篇】调试器gdb
【Linux工具篇】调试器gdb
67 0