温馨提示×

debian gcc怎样调试程序

小樊
47
2026-09-01 21:00:40
栏目: 智能运维

在 Debian 上用 GCC 调试程序,通常配合 gdb(GNU Debugger)使用。下面从“编译 → 调试 → 常用技巧”一步步说明。


一、安装必要的工具

sudo apt update
sudo apt install build-essential gdb
  • build-essential:包含 gcc、g++、make 等
  • gdb:调试器

二、使用 GCC 编译(关键:加 -g)

示例程序 test.c

#include <stdio.h>

int add(int a, int b) {
    return a + b;
}

int main() {
    int x = 3;
    int y = 4;
    int z = add(x, y);
    printf("result = %d\n", z);
    return 0;
}

编译(必须加 -g)

gcc -g -O0 test.c -o test

说明:

  • -g:生成调试信息
  • -O0:关闭优化(否则变量可能被优化掉)

三、使用 GDB 调试

1. 启动 gdb

gdb ./test

2. 常用 GDB 命令

命令 作用
run / r 运行程序
break main 在 main 函数设断点
break test.c:8 在指定行设断点
next / n 单步执行(不进函数)
step / s 单步执行(进入函数)
continue / c 继续执行
print x / p x 打印变量
backtrace / bt 查看调用栈
quit / q 退出 gdb

示例调试流程

(gdb) break main
(gdb) run
(gdb) next
(gdb) print x
(gdb) step
(gdb) backtrace

四、调试崩溃(Segmentation fault)

如果程序崩溃:

./test
# Segmentation fault (core dumped)

1. 开启 core dump

ulimit -c unlimited

2. 再次运行生成 core 文件

./test

3. 用 gdb 分析

gdb ./test core

然后:

(gdb) backtrace

五、图形化调试(可选)

1. 使用 cgdb

sudo apt install cgdb
cgdb ./test

2. 使用 VS Code

  • 安装 C/C++ 插件
  • 配置 launch.json
  • 使用 GDB 作为调试器

六、常见调试技巧

  • 使用 printf 快速定位(不推荐长期使用)
  • 使用 -Wall -Wextra 编译发现潜在问题
  • 使用 valgrind 检查内存问题:
sudo apt install valgrind
valgrind ./test

如果你有 具体程序 / 报错信息 / 想调试的场景(如多线程、核心转储、Makefile 项目),可以贴出来,我可以针对性讲。

0 踩