Linux C/C++ 调试器 gdb/cgdb 实战指南
一、调试前的预备知识
程序发布通常有两种模式:debug 模式和 release 模式。
- debug 模式:生成的可执行程序包含调试信息,方便程序员排查代码问题。
- release 模式:剥离或不再生成调试信息。文件体积更小,但调试器几乎无法工作,该版本程序难以调试。
Linux 下的 gcc/g++ 默认生成的是 release 版本的程序,无法直接调试。需要在命令后加上 -g 选项,指定以 debug 方式发布,这样我们才能在后续使用调试器。
gcc -o main main.c -g
(注:Makefile 中常写作 gcc -o $@ $^ -g)
二、gdb/cgdb 的使用
1. 启动与查看代码
开始调试前,确保系统已安装 gdb/cgdb,且待调试程序是 debug 版本。
gdb 文件名
退出调试可使用 ctrl + d 或输入 quit。
初次进入 gdb 看不到源代码,需使用 l (list) 相关命令:
- 输入
l:显示源代码,每次显示 10 行。 - 输入
l 函数名/文件名:列出指定函数或文件的代码。 - 输入
l 文件名:行号:列出指定文件中某一行附近的几行代码。

实际开发中,手动输入命令查看代码略显繁琐。因此诞生了 cgdb,它是 gdb 的前端增强版本,能直接将代码显示在屏幕上方,其他命令操作与 gdb 一致:

后面我们就在 cgdb 中进行演示了。
2. 基础调试命令
- 命令(run)
r:开始调试,从程序开始执行,调试中途随时可以输入r重头调试 - 命令(break)
b [文件名:] 行号:在指定行号设置断点 - 命令
info b:查看当前所有断点的信息 - 命令
d:删除所有断点 - 命令
d 断点序号:删除指定序号的断点
断点会在行号处标明:









