【Linux】调试器-gdb的安装与使用

1. 背景

程序的发布方式有两种,debug模式和release模式
Linux gcc/g++出来的二进制程序,默认是release模式
要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项

GDB的安装

在开始之前,确保已经安装了GDB。如果没有安装,可以使用包管理器进行安装。

安装GNU调试器(GDB)是在Linux系统中进行程序调试的重要步骤。下面是在常见的Linux发行版上安装GDB的简要说明:

Ubuntu/Debian:

在Ubuntu或Debian系统上,可以使用apt包管理器进行安装。打开终端,执行以下命令:

sudo apt update
sudo apt install gdb

这将下载并安装GNU调试器(GDB)及其相关的依赖项。

CentOS/RHEL:

在CentOS或RHEL系统上,可以使用yum包管理器进行安装。打开终端,执行以下命令:

sudo yum install gdb

如果你使用的是RHEL 8或CentOS 8,请使用下面的命令:

sudo dnf install gdb

源码安装:

如果需要使用最新版本的GDB或者系统没有预编译的包,你也可以选择从源代码编译安装。首先,你需要下载GDB的源代码包,然后解压缩。接着,进入解压后的目录,执行以下命令:

./configure
make
sudo make install

验证安装:

安装完成后,可以通过在终端中执行以下命令来验证是否成功安装了GDB:

gdb --version

如果安装成功,会显示GDB的版本信息。

GDB的基本用法

要使用GDB,首先需要在编译时启用调试信息。例如,使用gcc编译C程序时,可以通过添加-g选项来生成调试信息:

gcc -g -o myprogram myprogram.c

接下来,可以通过以下命令启动GDB并加载程序:

gdb ./myprogram

一旦进入GDB,就可以使用各种命令来检查程序状态、执行程序、设置断点等。

2. gdb常用命令

gdb binFile 退出:ctrl + dquit 调试命令:
list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。
list/l 函数名:列出某个函数的源代码。
rrun:运行程序。
n next:单条执行。
sstep:进入函数调用
break(b) 行号:在某一行设置断点
break 函数名:在某个函数开头设置断点
info break :查看断点信息。
finish:执行到当前函数返回,然后挺下来等待命令
print(p):打印表达式的值,通过表达式可以修改变量的值或者调用函数
p 变量:打印变量值。
set var:修改变量的值
continue(或c):从当前位置开始连续而非单步执行程序
run(或r):从开始连续而非单步执行程序
delete breakpoints:删除所有断点
delete breakpoints n:删除序号为n的断点
disable breakpoints:禁用断点
enable breakpoints:启用断点
info(或i) breakpoints:参看当前设置了哪些断点
display 变量名:跟踪查看一个变量,每次停下来都显示它的值
undisplay:取消对先前设置的那些变量的跟踪
until X行号:跳至X行
breaktrace(或bt):查看各级函数调用及参数
infoi) locals:查看当前栈帧局部变量的值
quit:退出gdb

结语

GDB是Linux环境下的一款强大的调试工具,本文介绍了它的基本用法、选项和常用命令。通过深入了解和熟练掌握GDB,开发者可以更轻松地进行程序调试,提高开发效率。

希望本文对您有所帮助,谢谢阅读!

  • 14
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一岁就可帅-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值