在 Ubuntu 下使用 gcc 调试程序,通常配合 gdb(GNU Debugger)来完成。下面从“编译 → 调试 → 常用命令”一步步说明。
一般 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 ./test
进入 gdb 后会出现:
(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 |
#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
ulimit -c unlimited
运行程序崩溃后会生成 core 文件。
gdb ./test core
然后:
bt
可以定位崩溃位置。
cgdb:带代码窗口的 gdbvalgrind:内存泄漏检测gdbserver:远程调试如果你有:
可以直接把代码或错误信息发我。