在 CentOS 上配置 C++ 调试器的完整步骤
一 安装与准备
- 更新系统并安装编译工具与调试器:
- 安装开发工具组与编译器:sudo yum groupinstall “Development Tools” -y
- 安装 C++ 编译器:sudo yum install gcc-c++ -y
- 安装 GDB:sudo yum install gdb -y
- 验证安装结果:
- 查看编译器版本:g++ -v
- 查看调试器版本:gdb --version
- 说明:若系统版本较旧,建议先执行 sudo yum update 再安装,以避免依赖问题。
二 使用 GDB 进行命令行调试
- 编译时务必加入调试信息:例如 g++ -g -O0 main.cpp -o main(建议用 -O0 关闭优化,便于逐行调试)。
- 启动与基本操作:
- 启动:gdb ./main
- 设置断点:break main 或 b 行号/函数名
- 运行:run(可带参数:run arg1 arg2)
- 单步:next(不进入函数)/ step(进入函数)
- 继续:continue
- 打印与类型:print 变量、whatis 变量
- 调用栈:backtrace(或 bt)
- 监视点:watch 变量(值变化时中断)
- 退出:quit
- 条件断点与多线程:
- 条件断点:break 行号 if 条件
- 线程查看与切换:info threads、thread 线程号
- 小提示:在用户主目录创建 ~/.gdbinit 可写入常用命令(如 set print pretty on)以持久化配置。
三 使用 VSCode 进行图形化调试
- 安装 VS Code:可通过 sudo yum install -y code 或从官方站点下载安装包安装。
- 安装扩展:在 VS Code 扩展市场安装 C/C++ 扩展。
- 编译程序:确保可执行文件由 g++ -g 生成。
- 配置调试:
- 打开命令面板选择 Debug: Open Configurations,生成或编辑 .vscode/launch.json。
- 示例配置(按实际路径修改 program):
{
“version”: “0.2.0”,
“configurations”: [
{
“name”: “C++ Debug”,
“type”: “cppdbg”,
“request”: “launch”,
“program”: “${workspaceFolder}/main”,
“args”: [],
“stopAtEntry”: false,
“cwd”: “${workspaceFolder}”,
“environment”: [],
“externalConsole”: false,
“MIMode”: “gdb”,
“miDebuggerPath”: “/usr/bin/gdb”,
“setupCommands”: [
{ “text”: “-enable-pretty-printing”, “description”: “启用美观打印”, “ignoreFailures”: true }
]
}
]
}
- 使用:在代码行号左侧设置断点,按 F5 启动调试。
四 升级工具链与内存调试
- 使用 Devtoolset 获取新版本 GCC/G++(适用于需要较新编译器的场景):
- 安装与启用:sudo yum install centos-release-scl -y
- 安装工具链(示例为 devtoolset-11):sudo yum install devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils -y
- 启用:scl enable devtoolset-11 bash(当前 shell 生效;如需持久化,可将 source 命令加入 ~/.bashrc)
- 验证:g++ -v
- 内存与性能分析(可选):
- 安装 Valgrind:sudo yum install valgrind -y
- 检测内存泄漏:valgrind --leak-check=full ./main
- 说明:Devtoolset 不会替换系统默认 GCC,仅在当前会话或配置的 shell 中生效。