温馨提示×

ubuntu gcc怎样调试代码

小樊
40
2026-10-21 13:48:13
栏目: 智能运维

在 Ubuntu 下使用 gcc 调试代码,通常配合 gdb(GNU Debugger)来进行。下面从「编译 → 运行 → 调试」给你一个完整流程。


一、安装 gcc 和 gdb

如果还没安装:

sudo apt update
sudo apt install build-essential gdb

检查版本:

gcc --version
gdb --version

二、用 gcc 编译可调试程序

关键:加 -g 参数

gcc -g -o test test.c

如果是 C++:

g++ -g -o test test.cpp

✅ -g 会包含调试信息(变量名、行号等)

⚠️ 不要加 -O2 等优化选项,否则调试会混乱


三、使用 gdb 调试

1️⃣ 启动 gdb

gdb ./test

进入 gdb 后:

(gdb) run

2️⃣ 设置断点

break main
break 10        # 第10行
break func_name

查看断点:

info breakpoints

删除断点:

delete 1

3️⃣ 单步执行

next     # 下一步(不进函数)
step     # 进入函数
continue # 继续执行

4️⃣ 查看变量和调用栈

print x
print arr[0]
backtrace   # 查看函数调用栈
info locals # 当前函数局部变量

5️⃣ 退出 gdb

quit

四、常见调试场景

✅ 段错误(Segmentation fault)

gdb ./test
run
bt

bt 会告诉你崩溃在哪一行


✅ 直接调试已崩溃的程序(core dump)

ulimit -c unlimited
./test
gdb ./test core

五、更友好的方式(可选)

1️⃣cgdb(带代码窗口)

sudo apt install cgdb
cgdb ./test

2️⃣ VS Code(图形化)

  • 安装 C/C++ 插件
  • 配置 launch.json
  • 一键调试,适合新手

六、简单示例

#include <stdio.h>

int main() {
    int a = 5;
    int b = 0;
    printf("%d\n", a / b);  // 故意错误
    return 0;
}
gcc -g -o test test.c
gdb ./test
run

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

  • 你用的是 C 还是 C++
  • 是 命令行新手 还是想用 VS Code
  • 遇到的是哪种错误(段错误 / 逻辑错误)

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

0 踩