温馨提示×

centos如何调试c加加代码

小樊
41
2026-09-24 06:51:13
栏目: 智能运维

在 CentOS 上调试 C++ 代码,通常有以下几种常用方式。下面从“准备环境 → 编译 → 调试 → 常见问题”逐步说明。


一、准备调试环境

1. 安装编译器

sudo yum install -y gcc gcc-c++

2. 安装调试器(GDB)

sudo yum install -y gdb

3. 安装 make(可选)

sudo yum install -y make

二、编译 C++ 程序(关键:加 -g)

一定要加 -g 选项,否则无法调试。

g++ -g -O0 main.cpp -o main

说明:

  • -g:生成调试信息
  • -O0:关闭优化(避免代码被优化导致调试困难)

三、使用 GDB 调试 C++ 程序

1. 启动 GDB

gdb ./main

2. 常用 GDB 命令

命令 作用
run / r 运行程序
break main 在 main 函数设断点
break file.cpp:20 在指定行设断点
next / n 单步执行(不进入函数)
step / s 单步执行(进入函数)
continue / c 继续执行
print x / p x 打印变量
backtrace / bt 查看调用栈
quit / q 退出 GDB

示例

(gdb) break main
(gdb) run
(gdb) next
(gdb) print a
(gdb) bt

四、调试崩溃(Segmentation fault)

如果程序崩溃:

gdb ./main
run
# 崩溃后
bt

可以定位是哪一行代码出错。


五、使用 core dump 调试(推荐)

1. 开启 core 文件

ulimit -c unlimited

2. 运行程序(崩溃后会生成 core 文件)

./main

3. 使用 core 调试

gdb ./main core
bt

六、使用 Visual / 图形化调试(可选)

1. VS Code + GDB(最推荐)

  • 安装 C/C++ 插件
  • 配置 launch.json
  • 使用远程 SSH 连接 CentOS

2. CGDB(带界面的 GDB)

sudo yum install -y cgdb
cgdb ./main

七、常见问题

1. GDB 找不到调试信息

✅ 确认编译时有 -g

2. STL 容器看不清

print vec

可安装:

sudo yum install -y gdb-gdbinit

3. CentOS 7 默认 GDB 版本低

建议升级或使用 DevToolset:

sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-9
scl enable devtoolset-9 bash

八、最小调试示例

main.cpp

#include <iostream>
using namespace std;

int main() {
    int a = 10;
    int b = 0;
    cout << a / b << endl; // 故意制造错误
}
g++ -g main.cpp -o main
gdb ./main
run
bt

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

  • CentOS 版本(7 / 8 / Stream)
  • 是否使用 IDE
  • 是本地还是服务器调试

我可以给你更具体的方案。

0 踩