在软件开发过程中,调试是必不可少的一环。对于使用 Debian 系统的开发者来说,GDB(GNU Debugger) 是一个强大且免费的命令行调试工具,特别适合调试 C/C++ 程序。本篇 Debian GDB调试器使用教程 将从零开始,带你一步步掌握 GDB 的基本用法,即使是编程小白也能轻松上手!
一、什么是 GDB?
GDB 是 GNU 项目提供的开源调试器,支持多种语言(主要是 C、C++、Go、Rust 等),可以在程序运行时查看变量、设置断点、单步执行、查看调用栈等,是 Linux 下最常用的调试工具之一。
二、在 Debian 中安装 GDB
Debian 系统通常不预装 GDB,但安装非常简单。打开终端,执行以下命令:
sudo apt updatesudo apt install gdb
安装完成后,可通过以下命令验证是否安装成功:
gdb --version
三、编写一个用于调试的示例程序
为了演示 GDB 的使用,我们先写一个简单的 C 程序
hello.c:
#include <stdio.h>int main() { int a = 10; int b = 0; int result = a / b; // 这里会引发除零错误 printf("Result: %d\n", result); return 0;}
四、编译程序并启用调试信息
要让 GDB 能够调试源代码,必须在编译时加入
-g参数以包含调试符号:
gcc -g -o hello hello.c
注意:不要使用
-O2或
-O3等优化选项,否则变量可能被优化掉,影响调试效果。
五、使用 GDB 调试程序
现在,启动 GDB 并加载我们的程序:
gdb ./hello
进入 GDB 后,你会看到类似如下的提示符:
(gdb)
常用 GDB 命令一览:
list或
l:显示源代码
break [行号/函数名]或
b:设置断点
run或
r:运行程序
next或
n:单步执行(不进入函数)
step或
s:单步执行(进入函数)
print [变量名]或
p:打印变量值
continue或
c:继续运行到下一个断点
backtrace或
bt:查看函数调用栈
quit或
q:退出 GDB
实战调试步骤:
1. 设置断点在第 6 行(即除法操作前):
(gdb) break 6
2. 运行程序:
(gdb) run
3. 程序会在第 6 行暂停。此时可以查看变量
a和
b的值:
(gdb) print a$1 = 10(gdb) print b$2 = 0
4. 继续执行,程序会因除零错误崩溃。此时可使用
bt查看调用栈:
(gdb) continueProgram received signal SIGFPE, Arithmetic exception.0x000055555555514b in main () at hello.c:66 int result = a / b;(gdb) bt#0 0x000055555555514b in main () at hello.c:6
六、小贴士
使用help命令可查看所有 GDB 命令帮助。 若想退出 GDB 并终止被调试程序,输入
quit并确认即可。 对于更复杂的项目,建议结合 Makefile 和
-g编译选项统一管理。
七、总结
通过本篇 Debian GDB调试器使用教程,你应该已经掌握了在 Debian 系统中安装 GDB、编译带调试信息的程序、设置断点、查看变量和分析崩溃原因等核心技能。GDB 虽然是命令行工具,但功能极其强大,是每个 C/C++ 开发者必备的 程序调试工具GDB。
无论你是刚接触 Linux 编程的新手,还是希望提升调试效率的开发者,掌握 GDB调试入门 技巧都将让你事半功倍。快在你的 Debian下使用GDB 实践起来吧!
