2024年6月2日发(作者:)
UNIX下命令行调试工具GDB使用教程
GDB(GNU调试器)是UNIX和类UNIX系统上最常用的命令行调试工
具之一、它允许程序员在运行时利用各种功能进行程序调试,比如设置断
点、单步执行、查看变量值等。本教程将介绍UNIX下GDB的基本使用方
法。
1.安装GDB
GDB通常已经预装在大多数UNIX系统中。如果没有安装,可以使用
包管理器安装,比如`apt`, `yum`, `dnf`等。示例命令(以
Debian/Ubuntu为例):
```
sudo apt-get install gdb
```
2.编译可调试的程序
编译时需要启用调试信息,以便GDB能够准确地定位代码。在编译时
使用`-g`选项,示例命令:
```
gcc -g program.c -o program
```
3.启动GDB
在命令行中输入`gdb`命令,然后指定需要调试的可执行文件,示例
命令:
```
gdb program
```
4.设置断点
断点是一种在程序执行到指定位置时暂停执行的机制,可以用来检查
程序在该位置的状态。在GDB提示符下输入`break`或`b`命令,然后指定
需要设置断点的行数或函数名。示例命令:
```
b main // 在main函数设置断点
b file.c:10 // 在file.c文件的第10行设置断点
```
5.运行程序
在GDB提示符下输入`run`或`r`命令,然后按回车键执行程序。程序
执行到第一个断点时将会暂停执行。示例命令:
```
run
```
6.单步执行
单步执行是一种逐行执行程序的方式,可以帮助程序员了解程序的执
行过程。在GDB提示符下输入`step`或`s`命令,可以逐行执行程序。示
例命令:
```
step // 执行当前行,并进入函数调用
next // 执行当前行,不进入函数调用
finish // 运行至当前函数结束,并暂停
```
7.查看变量值
在GDB提示符下输入`print`或`p`命令,可以查看当前变量的值。示
例命令:
```
print var // 查看变量var的值
print *ptr // 查看指针ptr指向的内存的值
```
8.修改变量值
在调试过程中,有时需要修改变量的值以测试程序行为。在GDB提示
符下输入`set`命令,可以修改变量的值。示例命令:
```
set var = 10 // 修改变量var的值为10
set *ptr = 20 // 修改指针ptr指向的内存的值为20
```
9.查看栈信息
在程序运行过程中,栈存储了函数调用的序列。在GDB提示符下输入
`backtrace`或`bt`命令,可以查看当前的栈信息。示例命令:
```
backtrace // 打印栈帧信息
frame n // 切换至第n个栈帧
```
10.继续执行程序
在程序暂停执行时,可以使用`continue`或`c`命令继续执行程序直
到遇到下一个断点或程序结束。示例命令:
```
continue
```


发布评论