温馨提示×

ubuntu gcc怎样调试程序

小樊
37
2026-09-22 06:56:27
栏目: 智能运维

在 Ubuntu 下使用 gcc 调试程序,通常配合 gdb(GNU Debugger)来完成。下面从“编译 → 调试 → 常用命令”一步步说明。


一、安装 gcc 和 gdb

一般 Ubuntu 已自带 gcc,如果没有:

sudo apt update
sudo apt install gcc gdb

验证:

gcc --version
gdb --version

二、编译时加入调试信息

关键:加 -g 参数

gcc -g -o test test.c

如果程序较复杂,建议加上 -Wall -Wextra:

gcc -g -Wall -Wextra -o test test.c

✅ -g 会生成调试符号,gdb 才能看到变量、行号。


三、使用 gdb 调试程序

1. 启动 gdb

gdb ./test

进入 gdb 后会出现:

(gdb)

2. 常用 gdb 命令

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

3. 示例

#include <stdio.h>

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

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

调试流程:

gcc -g -o test test.c
gdb ./test

在 gdb 中:

break main
run
next
print x
step
print a
continue

四、调试已崩溃程序(core dump)

1. 开启 core 文件

ulimit -c unlimited

运行程序崩溃后会生成 core 文件。

2. 用 gdb 分析

gdb ./test core

然后:

bt

可以定位崩溃位置。


五、进阶工具(可选)

  • cgdb:带代码窗口的 gdb
  • valgrind:内存泄漏检测
  • gdbserver:远程调试

如果你有:

  • 具体报错
  • 想调试多线程 / 段错误 / Makefile 项目

可以直接把代码或错误信息发我。

0 踩