【Linux】环境基础开发工具的使用之gdb详解(三)

简介: 【Linux】环境基础开发工具的使用之gdb详解(三)

前言:上一篇文章中我们讲解了Linux下的gcc与g++的使用,今天我们将进一步的学习gdbmakefile来帮我们更好的理解与使用基础开发工具。

d6dc0126edd141a985d72de501ef756b.jpg

Linux下基础开发工具

gdb调试方法

程序的发布方式有两种,debug模式和release模式

Linux gcc/g++出来的二进制程序,默认是release模式

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

GDB是一个用于调试程序的强大工具,可以运行在Linux操作系统下。在Linux中,你可以通过以下步骤来安装和使用GDB:

  1. 打开终端。
  2. 输入以下命令以安装GDB:sudo apt-get install gdb(请注意,这需要管理员权限)。
  3. 安装完成后,你可以通过输入gdb命令来启动GDB调试器。
  4. 接下来,你需要指定要调试的可执行文件。例如,如果你要调试一个名为program的程序,可以使用命令gdb program
  5. GDB将会启动并等待你输入调试命令。你可以使用命令run来运行程序,然后使用其他命令来设置断点、查看变量的值等等。

以下是一些常用的GDB命令:

  • listl:查看源代码
  • breakb:设置断点。
  • info breakpoints :显示断点信息
  • runr:运行程序。
  • continuec:继续执行程序。
  • nextn:执行下一行代码。
  • steps:单步执行程序,进入函数调用。
  • printp:打印变量的值。
  • backtracebt:显示函数调用的堆栈跟踪。
  • quitq:退出GDB调试器。
  • display 表达式:在单步运行时将非常有用,使用display命令设置一个表达式后,它将在每次单步进行指令后,紧接着输出被设置的表达式及值。如: display n
  • watch 表达式:设置一个监视点,一旦被监视的“表达式”的值改变,gdb将强行终止正在被调试的程序。如: watch n(查看变量n)
  • whatis :查询变量或函数
  • info function: 查询函数
  • 扩展info locals: 显示当前堆栈页的所有变量

这只是GDB的一些基本用法,GDB提供了很多功能,你可以通过查阅GDB的文档来了解更多详细的使用方法。


1.启动gdb

对于任何一个文件,必须在源代码生成二进制程序的时候, 加上 -g 选项

实例演示

对文件test.c的文件进行调试,调试的文件命名为test:gcc -g test.c -o test

启动gdb,命令如下:(两种方式)

gdb test //启动调试名称为test的文件,但是会显示版本信息
gdb -q test //表示不打印gdb版本信息,界面较为干净;

运行图:

无版本信息指令:

2.查看源代码

listl:查看源代码

实例演示:


3.运行程序

runr:运行程序。

实例演示:


4.设置断点

breakb:设置断点, b 行号

删除断点:delete break_num

实例演示:

5.查看断点信息

info breakpoints :显示断点信息

实例演示:

6.执行下一行代码。

nextn:执行下一行代码。

steps:单步执行程序,进入函数调用。

重复上一条命令:按下回车 。即每一次重复执行上一条指令时,不需要重复输入,只需回车即可。

附:报错”The program is not being run.”

程序没有自动开始运行,此时输入 start 即可开始调试,注意不要使用 run 命令

实例演示:


7.查看变量

printp:打印变量的值。

实例演示:


8.退出gdb

quitq:退出GDB调试器。

这只是GDB的一些基本用法,GDB提供了很多功能,你可以通过查阅GDB的文档来了解更多详细的使用方法。


好啦,今天的内容就到这里啦,下期内容预告make/makefile、进度条的讲解


结语:今天的内容就到这里吧,谢谢各位的观看,如果有讲的不好的地方也请各位多多指出,作者每一条评论都会读的,谢谢各位。


相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
1月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
188 11
|
3月前
|
存储 监控 Linux
Linux环境锁定关键文件防止误删操作流程。
总结以上内容,在Linux环境下锁定重要文档避免误删涉及到多种技术手段与策略组合运作, 包括但不限于利用chatter指挥官固化文档状态至只读模式、运作ACL精准调整访问权利列表、编排自动化流程简
146 20
|
3月前
|
Linux
Linux环境下的UDEV机制及其与守护进程的关联
实际使用时管理员需要熟悉编写合适udev rules去满足特殊需求;同时也需要注意避免编写过度复杂导致无法预料结果rules.UDEVD虽然稳健但错误配置可能导致无法预料问题因此需谨慎处理相关配置工作.
140 16
|
3月前
|
存储 Linux
Linux环境下删除大文件后磁盘空间未释放问题诊断流程。
以上诊断流程涉及Linux底层机制与高级管理技能结合之处,并需要管理员根据实际环境灵活调整诊断策略与解决方案。
260 8
|
3月前
|
Ubuntu 安全 Linux
Ubuntu 24.10 发行版登场:Linux 6.11 内核、GNOME 47 桌面环境
Ubuntu 24.10 还带来了 GNOME 47,增强了性能和稳定性,并引入了新功能。此版本的 Ubuntu 还默认在采用 Nvidia 显卡的硬件上切换到 Wayland,并在支持的硬件上默认使用开源的 Nvidia 560 内核模块。 另外需要注意的是,Ubuntu 24.10 是稳定版本,但作为非 LTS 版本,仅支持 9 个月。
|
3月前
|
安全 Linux 网络安全
Linux系统初步设置本地Git环境和生成SSH密钥的步骤。
现在您的Linux系统已经配置好了Git环境,并创建并添加了SSH密钥,可以安全地与远端仓库进行交互,无论是克隆、推送还是拉取操作。此过程确保了数据传输的安全并使版本控制流程更为顺畅。使用Git时应考虑定期更新并管理您的凭据,以确保安全性。
480 0
|
安全 Linux 测试技术
配置Goby工具环境(win,linux,macOS)
配置Goby工具环境(win,linux,macOS)
1374 2
|
6月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
458 11
下一篇
oss云网关配置