gdb命令包含在GNU的gcc开发套件中,是功能强大的程序调试器。
gdb中的命令很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。
**语法格式:** gdb [参数] [文件]
**常用参数:**
| -cd | 设置工作目录 |
| ----- | ------------------------------------ |
| -q | 安静模式,不打印介绍信息和版本信息 |
| -d | 添加文件查找路径 |
| -x | 从指定文件中执行GDB指令 |
| -s | 设置读取的符号表文件 |
**常用命令:**
| file <文件名> | 加载被调试的可执行程序文件 |
| --------------- | -------------------------------------------------- |
| run | 重新开始运行文件 |
| start | 单步执行,运行程序,停在第一执行语句 |
| list | 查看原代码,简写l |
| set | 设置变量的值 |
| next | 单步调试(逐过程,函数直接执行),简写n |
| step | 单步调试(逐语句:跳入自定义函数内部执行),简写s |
| backtrace | 查看函数的调用的栈帧和层级关系,简写bt |
| frame | 切换函数的栈帧,简写f |
| info | 查看函数内部局部变量的数值,简写i |
| finish | 结束当前函数,返回到函数调用点 |
| continue | 继续运行,简写c |
| print | 打印值及地址,简写p |
| quit | 退出gdb,简写q |
gdb命令拥有较多内部命令。在gdb命令提示符“(gdb)”下输入“help”可以查看所有内部命令及使用说明。要使用gdb调试程序,在使用gcc编译源代码时必须加上“-g”参数。
**参考实例**
启动gdb调试器:
```
[root@anycode ~]# gdb
(gdb)
```
加载二进制可执行程序:
```
(gdb)file linuxcool.out
```
运行并跟踪程序:
```
(gdb)start
```