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 + d 或 quit 调试命令:
list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。
list/l 函数名:列出某个函数的源代码。
r或run:运行程序。
n 或 next:单条执行。
s或step:进入函数调用
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):查看各级函数调用及参数
info(i) locals:查看当前栈帧局部变量的值
quit:退出gdb
结语
GDB是Linux环境下的一款强大的调试工具,本文介绍了它的基本用法、选项和常用命令。通过深入了解和熟练掌握GDB,开发者可以更轻松地进行程序调试,提高开发效率。
希望本文对您有所帮助,谢谢阅读!