Linux--gdb的使用

简介: Linux--gdb的使用


release版本和Debug版本

Release版本该版本用于发布的最终产品版本。它会进行各种优化,以提高代码的执行效率和运行速度。编译时通常会选择较高的优化级别,此外,该版本还会进行链接优化,移除未使用的代码和数据,减少可执行文件的大小。在编译时,通常会禁用调试符号的生成,以减少文件大小和保护源代码。

Debug版本:该版本用于调试和开发阶段的版本。它包含了调试所需的详细符号信息,可以帮助开发人员定位和修复代码中的错误。编译时通常会禁用大部分的优化选项,以便在调试过程中更好的观察和理解代码。

那么gcc在编译时会产生什么模式呢?

release模式

写个文件测试:

那如何产生一个dubug版本的呢?

GDB

gdb是一款用于调试程序的开源工具,它在Linux系统中非常常用。

安装指令:

yum install -y gdb

一般来说,系统会默认安装,如果没有,就按上面指令进行安装,如果是普通用户,需要在前面加上sudo;

一般步骤

1.先产生一个可执行程序文件;

2.启动gdb,并指定要调试的可执行文件。

指令:gdb <可执行文件>

3.在gdb命令行界面中,可以执行各种命令来控制程序的执行;

4.使用gdb提供的命令和快捷键来进行单步执行、查看变量、检查调用栈等操作,以便找出程序中的错误。

常用命令

命令 作用
list(l) +行号 显示binFile源代码,接着上次的位置往下列,每次列10行。
run(r) 启动程序的执行
break(b) 设置断点,可以是代码行、函数名等
continue ( c ) 继续执行程序,直到遇到下一个断点或者程序结束
info b 显示当前所有断点的信息
d+断点编号 删除对应的断点
disable+断点编号 让对应断点失效
enable+断点编号 恢复对应断点
step(s) 逐语句执行,会进入函数内部
next(n) 逐过程运行,不会进入函数内部
print§+变量 打印变量的值
display+变量 常显示变量的值
backtrace(bt) 显示当前的函数调用栈
finish 结束一个函数的运行
until+行数 可以跳到指定行
set var 变量=值 在调试过程中,直接改变变量的值
quit 退出gdb

测试:

l+行号

断点

运行调试:

逐语句和逐过程

查看变量

continue:断点的跳跃

调用堆栈查看

finish

until:

set var:

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
NoSQL Linux 编译器
Linux下交叉编译gdb,gdbserver+gdb的使用以及通过gdb调试core文件
交叉编译gdb和gdbserver 1、下载gdb:下载地址为:http://ftp.gnu.org/gnu/gdb/按照一般的想法,最新版本越好,因此下载7.2这个版本。当然,凡事无绝对。我们以gdb-7.2.tar.bz2 这个文件为例。
6693 1
|
4月前
|
NoSQL Linux C语言
Linux GDB 调试
Linux GDB 调试
68 10
|
7月前
|
NoSQL Linux 编译器
【Linux】开始使用gdb吧!
这篇文章我们来学习 gdb 的使用方法。我们在Windows端编写代码时有宇宙最强编译器VS2022帮助我们调试,那Linux端有没有一款强大的调试工具呢???
96 17
【Linux】开始使用gdb吧!
|
7月前
|
存储 监控 Unix
【Linux 系统】Linux 下基本指令 -- 详解
【Linux 系统】Linux 下基本指令 -- 详解
|
7月前
|
NoSQL Linux C语言
【Linux】Linux调试器-gdb使用
【Linux】Linux调试器-gdb使用
47 0
|
NoSQL Linux C语言
|
NoSQL Linux
【Linux】gdb 的使用
【Linux】gdb 的使用
64 0
|
NoSQL Linux 编译器
Linux之gdb的使用
学会在Linux下调试代码
Linux之gdb的使用
|
NoSQL Linux 程序员
【Linux】Linux调试器--gdb的使用
【Linux】Linux调试器--gdb的使用
|
NoSQL IDE Linux
【Linux】Linux下调试器gdb的使用
【Linux】Linux下调试器gdb的使用
223 0
【Linux】Linux下调试器gdb的使用