GDB(GNU Debugger)是 Linux 系统下的标准命令行调试工具,主要用于分析程序崩溃、逻辑错误、内存泄漏等问题。以下是关于在 Linux 中使用 GDB的专业指南,涵盖基础操作、调试流程及相关扩展内容。

1. 安装 GDB: bash # Debian/Ubuntu sudo apt-get install gdb # Red Hat/CentOS sudo yum install gdb 2. 编译带调试信息的程序: 使用 `-g` 选项编译代码以生成调试符号: bash gcc -g -o my_program my_program.c 3. 启动 GDB: bash gdb ./my_program 4. 常用调试操作: - 设置断点: `break main` 或 `b 10`(第10行) - 运行程序: `run` - 单步执行: `next`(不进入函数) / `step`(进入函数) - 查看变量值: `print variable_name` - 查看堆栈: `backtrace`(缩写 `bt`) - 退出调试: `quit`
| 命令 | 功能 |
|---|---|
| info breakpoints | 列出所有断点 |
| continue | 继续执行至下一个断点 |
| watch variable | 监视变量变化 |
| disassemble | 反汇编当前函数 |
| x/10x $rsp | 检查堆栈内存(16进制显示) |
- 核心转储(Core Dump)分析:
bash
ulimit -c unlimited # 启用核心转储
gdb ./my_program core # 分析转储文件
01. 多线程调试:
- `info threads` 查看线程
- `thread
- 需保证编译后的程序包含符号表(`-g` 编译标志)。
- 禁用系统地址随机化(ASLR)以便于调试:
bash
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
- 若需调试已运行进程,使用 `gdb -p

查看详情

查看详情