温馨提示×

Debian下GCC如何调试代码

小樊
47
2026-08-26 03:37:16
栏目: 智能运维

在 Debian 下使用 GCC 调试 C/C++ 代码,通常流程是:编译时加调试信息 → 用 gdb 调试。下面按实际操作步骤说明。


一、安装必要工具

1. 安装 GCC 和 GDB

sudo apt update
sudo apt install gcc g++ gdb

如果是 C++ 程序,用 g++;C 程序用 gcc


二、编译时加入调试信息(关键)

1. 基本调试编译

gcc -g main.c -o main

或 C++:

g++ -g main.cpp -o main

-g 表示生成调试信息(必须)

2. 推荐调试编译方式(更利于定位问题)

gcc -g -O0 -Wall -Wextra main.c -o main

参数说明:

  • -g:生成调试信息
  • -O0:关闭优化(避免变量被优化掉)
  • -Wall -Wextra:开启常见警告

三、使用 GDB 调试程序

1. 启动 GDB

gdb ./main

2. 常用 GDB 命令

命令 说明
run / r 运行程序
break 行号 设置断点
break 函数名 在函数入口设断点
next / n 单步执行(不进入函数)
step / s 单步执行(进入函数)
continue / c 继续执行
print 变量 查看变量值
backtrace / bt 查看函数调用栈
info locals 查看局部变量
quit / q 退出 GDB

示例

(gdb) break main
(gdb) run
(gdb) next
(gdb) print i
(gdb) backtrace

四、调试崩溃程序(Segmentation fault)

1. 运行程序直到崩溃

./main

2. 使用 core dump(推荐)

ulimit -c unlimited
./main

生成 core 文件后:

gdb ./main core

然后查看:

bt

五、使用 GDB 调试带参数的程序

gdb --args ./main arg1 arg2

或者:

(gdb) set args arg1 arg2
(gdb) run

六、常见调试技巧

1. 查看指针内容

print *ptr

2. 查看数组

print arr[0]@5

3. 条件断点

break 20 if i == 10

4. 调试多线程

info threads
thread 2

七、图形化调试(可选)

如果不习惯命令行:

sudo apt install ddd
ddd ./main

或使用 VS Code + GDB(更友好)。


八、示例完整流程

gcc -g -O0 main.c -o main
gdb ./main
(gdb) break main
(gdb) run
(gdb) next
(gdb) print x
(gdb) quit

如果你愿意,可以把:

  • 报错信息
  • 示例代码
  • 是 C 还是 C++

发给我,我可以针对你的具体代码一步步调试说明

0