在 Ubuntu 下使用 GCC 调试程序,通常配合 GDB(GNU Debugger) 来进行。下面从最基础到常用操作给你一个完整流程。
一般 Ubuntu 自带 gcc,如果没有:
sudo apt update
sudo apt install gcc gdb
验证:
gcc --version
gdb --version
必须加 -g 参数,否则无法调试。
gcc -g main.c -o main
如果是多个文件:
gcc -g main.c func.c -o main
推荐(开启警告):
gcc -g -Wall main.c -o main
gdb ./main
进入 GDB 后提示符是:
(gdb)
break main # 在 main 函数处断点
break 10 # 在第 10 行断点
break func.c:20 # 指定文件行号
run
run arg1 arg2 # 带命令行参数
next # 单步(不进入函数)
step # 单步(进入函数)
print x
print arr[0]
p *ptr
backtrace
bt
continue
delete 1
clear main
quit
test.c#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("z = %d\n", z);
return 0;
}
gcc -g test.c -o test
gdb ./test
(gdb) break main
(gdb) run
(gdb) next
(gdb) print x
(gdb) step
(gdb) print a
(gdb) continue
❌ 没有 -g 编译
No symbol table info available
✅ 解决:重新 gcc -g 编译
❌ 段错误(Segmentation fault)
run
bt
查看是哪一行出错
watch x:监视变量变化info breakpoints:查看断点set args:设置运行参数layout src:图形化源码(TUI 模式)如果你愿意,可以告诉我:
我可以直接给你对应场景的操作步骤。