1. Linux调试工具概述
在Linux系统开发过程中,调试是每个程序员必须掌握的核心技能。不同于Windows平台丰富的图形化调试工具,Linux环境下主要依靠命令行工具进行调试,其中gdb(GNU Debugger)是最基础也是最强大的调试利器。
我第一次接触gdb是在大学操作系统课程上,当时面对黑漆漆的命令行界面完全不知所措。经过多年实战,我发现gdb虽然学习曲线陡峭,但一旦掌握就能解决90%以上的调试需求。而cgdb作为gdb的增强版,提供了更友好的界面和操作体验。
提示:初学者常犯的错误是过度依赖printf调试法。实际上,掌握gdb后调试效率能提升3-5倍,特别是处理复杂的内存问题和多线程场景时。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. gdb基础用法详解
2.1 环境准备与基本命令
安装gdb非常简单,在主流Linux发行版中只需一条命令:
bash复制# Ubuntu/Debian
sudo apt install gdb
# CentOS/RHEL
sudo yum install gdb
编译待调试程序时需要加上-g选项生成调试信息:
bash复制gcc -g main.c -o demo
启动gdb调试的三种常用方式:
- 直接调试可执行文件:
gdb ./demo - 调试正在运行的进程:
gdb -p <pid> - 分析核心转储文件:
gdb ./demo core
基础命令速查表:
| 命令 | 简写 | 功能说明 |
|---|---|---|
| run | r | 启动程序 |
| break | b | 设置断点 |
| continue | c | 继续执行 |
| next | n | 单步执行(不进入函数) |
| step | s | 单步执行(进入函数) |
| p | 打印变量值 | |
| backtrace | bt | 查看调用栈 |
| quit | q | 退出gdb |
2.2 断点设置技巧
设置断点是调试中最常用的操作,但很多人只使用最基本的break命令。实际上gdb提供了丰富的断点设置方式:
- 按行号设置断点:
bash复制(gdb) b main.c:20 # 在main.c第20行设置断点
- 按函数名设置断点:
b复制
