温馨提示×

debian gcc如何调试

小樊
34
2026-10-07 17:49:13
栏目: 智能运维

在 Debian 上用 GCC 调试程序,通常配合 GDB 使用。下面从「编译 → 调试 → 常用技巧」一步步说明。


一、安装必要工具

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("z = %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:10 在指定行下断点
next / n 单步执行(不进入函数)
step / s 单步进入函数
print x / p x 查看变量
backtrace / bt 查看调用栈
continue / c 继续执行
quit / q 退出

示例调试流程

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

四、调试崩溃(Segmentation fault)

./test
# Segmentation fault
gdb ./test
(gdb) run
# 程序崩溃后
(gdb) backtrace

可快速定位是哪一行导致段错误。


五、配合 core dump(推荐)

开启 core 文件

ulimit -c unlimited

运行程序产生 core 文件后:

gdb ./test core
(gdb) bt

六、图形化调试(可选)

1. 文本界面

gdb -tui ./test

2. 图形工具

sudo apt install ddd
# 或
sudo apt install nemiver

七、常见问题

变量显示 <optimized out>

✅ 解决:

gcc -g -O0

没有调试信息

✅ 检查:

file test

应有 with debug_info


如果你愿意,可以告诉我:

  • 你是 C / C++?
  • 是 段错误 / 逻辑错误 / 多线程?
  • 是否使用 Makefile / CMake?

我可以给你更针对性的调试方案。

0 踩