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,开发者可以更轻松地进行程序调试,提高开发效率。
希望本文对您有所帮助,谢谢阅读!