在 Ubuntu 上使用 gcc 进行调试,通常流程是:编译时加调试信息 → 用 gdb 调试。下面从基础到常用操作给你讲清楚。
一般 Ubuntu 自带 gcc,但 gdb 可能没装:
sudo apt update
sudo apt install gcc gdb
验证:
gcc --version
gdb --version
-g)假设你有 test.c:
#include <stdio.h>
int main() {
int a = 10;
int b = 0;
int c = a / b; // 会崩溃
printf("%d\n", c);
return 0;
}
❌ 错误方式(不能调试):
gcc test.c -o test
✅ 正确方式(加 -g):
gcc -g test.c -o test
可选:开启警告
gcc -g -Wall test.c -o test
gdb ./test
进入 gdb 后常见操作:
run
或简写:
r
按函数:
break main
按行号:
break test.c:6
查看断点:
info breakpoints
删除断点:
delete 1
进入函数:
step
(简写 s)
不进入函数:
next
(简写 n)
print a
或:
p a
backtrace
(简写 bt)
continue
(简写 c)
quit
ulimit -c unlimited
./test
会生成 core 或 core.xxx
gdb ./test core
然后:
bt
可以看到崩溃位置。
| 功能 | 命令 |
|---|---|
| 编译带调试 | gcc -g |
| 运行 | run |
| 断点 | break |
| 单步 | step / next |
| 看变量 | print |
| 栈 | backtrace |
| 继续 | continue |
你可以告诉我:
我可以给你更具体的调试示例。