温馨提示×

CentOS C++调试用什么工具

小樊
46
2026-08-30 03:08:55
栏目: 编程语言

CentOS 上调试 C++ 程序,常用工具如下(从最常用到进阶):


一、必备基础工具

1. GDB(GNU Debugger)✅ 强烈推荐

最主流的 C/C++ 调试工具。

安装

sudo yum install -y gdb

编译时加调试信息

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

常用命令

gdb ./main
(gdb) run
(gdb) break main
(gdb) next
(gdb) step
(gdb) print var
(gdb) backtrace
(gdb) quit

常用技巧

  • bt:查看调用栈
  • watch expr:变量监视
  • info locals:查看局部变量
  • set args:设置程序参数

二、可视化 / 增强工具

2. CGDB(GDB 的终端 UI)

比 GDB 更友好,有代码窗口。

安装

sudo yum install -y epel-release
sudo yum install -y cgdb

使用

cgdb ./main

3. GDB + TUI(GDB 自带界面)

无需额外安装。

gdb ./main
(gdb) layout src
(gdb) layout regs

快捷键:

  • Ctrl + L 刷新
  • Ctrl + X + A 切换 TUI

三、内存 / 越界 / 崩溃分析

4. Valgrind(内存调试神器)

用于检测:

  • 内存泄漏
  • 非法访问
  • 未初始化内存

安装

sudo yum install -y valgrind

使用

valgrind --leak-check=full ./main

5. AddressSanitizer(ASan)✅ 推荐

比 Valgrind 快,直接在编译期启用。

编译

g++ -fsanitize=address -g main.cpp -o main

运行

./main

可检测:

  • 越界访问
  • use-after-free
  • 内存泄漏(需加 -fsanitize=leak

四、IDE / 图形化调试(服务器也可用)

6. VS Code + GDB(强烈推荐)

适合本地或远程开发。

插件

  • C/C++
  • GDB Debug

配置 launch.json

{
  "type": "cppdbg",
  "request": "launch",
  "program": "${workspaceFolder}/main",
  "args": [],
  "stopAtEntry": false,
  "cwd": "${workspaceFolder}",
  "externalConsole": false,
  "MIMode": "gdb"
}

7. CLion(商业 IDE)

  • 开箱即用的 GDB/LLDB 调试
  • 适合大型 C++ 项目

五、推荐组合(实战)

场景 推荐
普通调试 GDB
快速定位崩溃 GDB + core dump
内存问题 AddressSanitizer / Valgrind
远程服务器 GDB / CGDB
本地开发 VS Code + GDB

六、常见调试技巧

core dump 分析

ulimit -c unlimited
./main
gdb ./main core

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

  • CentOS 版本(7 / 8 / Stream)
  • 是服务器还是本地开发
  • 是崩溃、卡死还是内存问题

我可以给你一套最适合你环境的调试方案

0