温馨提示×

centos gcc调试功能怎么开

小樊
36
2026-10-20 07:00:30
栏目: 智能运维

在 CentOS 上开启 GCC 的调试功能,通常是指 编译时加入调试信息,以便用 gdb 等调试器进行调试。下面按常见场景说明。


一、编译时开启调试信息(最常用)

1️⃣ 基本调试编译

gcc -g test.c -o test
  • -g:生成调试信息(默认格式,兼容 gdb)
  • 生成的可执行文件可以用 gdb ./test 调试

2️⃣ 更完整的调试信息(推荐)

gcc -g3 -O0 test.c -o test

说明:

  • -g3:包含宏定义等更详细信息
  • -O0:关闭优化(非常重要,否则变量可能被优化掉,调试困难)

✅ 调试时强烈建议 -O0


3️⃣ 调试 + 警告

gcc -g3 -O0 -Wall -Wextra test.c -o test

二、使用 GDB 进行调试

1️⃣ 安装 gdb(如果没装)

sudo yum install gdb

2️⃣ 启动调试

gdb ./test

常用 gdb 命令:

run
break main
next
step
print var
backtrace
quit

三、生成 core dump(程序崩溃调试)

1️⃣ 开启 core 文件

ulimit -c unlimited

2️⃣ 编译

gcc -g3 -O0 test.c -o test

3️⃣ 程序崩溃后

gdb ./test core

四、CMake 项目如何开启调试

方法 1:命令行指定

cmake -DCMAKE_BUILD_TYPE=Debug ..
make

方法 2:CMakeLists.txt

set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_C_FLAGS_DEBUG "-g3 -O0")

五、常见问题

❌ 调试时看不到变量?

  • 没加 -g
  • 开了 -O2 等优化 ✅ 使用 -g3 -O0

❌ gdb 提示 “no debugging symbols found”

  • 编译时没加 -g
  • 或者用了 strip

六、总结(最简配置)

gcc -g3 -O0 test.c -o test
gdb ./test

如果你是 CentOS 7 / 8、gcc 版本问题、或者 内核 / 驱动调试,可以告诉我具体场景,我可以给你更针对性的方案。

0 踩