温馨提示×

ubuntu gcc调试如何使用

小樊
34
2026-10-06 23:48:53
栏目: 智能运维

在 Ubuntu 下使用 gcc 进行调试,通常配合 gdb(GNU Debugger)。下面从「编译 → 调试 → 常用命令」给你一个完整入门说明。


一、安装 gcc 和 gdb

sudo apt update
sudo apt install gcc gdb

验证:

gcc --version
gdb --version

二、编译时加入调试信息(非常重要)

必须加 -g 选项,否则 gdb 无法调试。

gcc -g -o test test.c

推荐(开启警告):

gcc -g -Wall -o test test.c

三、使用 gdb 调试程序

1. 启动 gdb

gdb ./test

进入 gdb 后,命令行提示符变成:

(gdb)

2. 常用 gdb 调试命令

命令 作用
run / r 运行程序
break 行号 在指定行设断点
break 函数名 在函数入口设断点
info break 查看断点
delete 断点号 删除断点
next / n 单步执行(不进入函数)
step / s 单步执行(进入函数)
print 变量 / p 打印变量值
continue / c 继续执行
backtrace / bt 查看函数调用栈
frame n 切换栈帧
quit / q 退出 gdb

3. 示例

// 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 -o test test.c
gdb ./test
(gdb) break main
(gdb) run
(gdb) next
(gdb) step
(gdb) print z
(gdb) continue

四、调试核心转储(程序崩溃)

如果程序崩溃:

ulimit -c unlimited
./test

生成 core 文件后:

gdb ./test core

查看崩溃位置:

(gdb) bt

五、配合 Makefile(推荐)

CFLAGS = -g -Wall

test: test.c
	gcc $(CFLAGS) -o test test.c

六、进阶工具(可选)

  • cgdb:带代码高亮的 gdb
  • valgrind:内存泄漏检测
  • gdbgui:图形界面 gdb

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

  • 你是 C / C++?
  • 是 段错误 / 逻辑错误 / 性能问题?
  • 是否使用 VSCode / CLion?

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

0 踩