温馨提示×

ubuntu c++调试工具怎么配

小樊
41
2026-10-05 08:21:07
栏目: 编程语言

在 Ubuntu 下做 C++ 调试,常用组合是 g++/clang + GDB +(可选)VS Code / CMake。下面按“从零到能调试”给你一套实用配置。


一、安装基础工具

sudo apt update
sudo apt install -y build-essential gdb
  • build-essential:包含 g++、make
  • gdb:命令行调试器

可选(推荐):

sudo apt install -y cmake clang valgrind

二、编译时必须加调试信息

1️⃣ 用 g++ 编译

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

重点:

  • -g:生成调试符号
  • -O0:关闭优化(否则变量可能被优化掉)

三、使用 GDB 调试(命令行)

启动

gdb ./main

常用 GDB 命令

break main           # 在 main 设断点
run                  # 运行程序
next                 # 单步(不进函数)
step                 # 单步(进函数)
print x              # 打印变量
backtrace            # 查看调用栈
continue             # 继续执行
quit                 # 退出

示例:

(gdb) break 10
(gdb) run
(gdb) print a

四、用 VS Code 调试(最推荐)

1️⃣ 安装 VS Code

sudo snap install code --classic

2️⃣ 安装插件

  • C/C++
  • CMake Tools(如果用 CMake)

3️⃣ 配置 launch.json

示例(放在 .vscode/launch.json):

{
  "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",
      "preLaunchTask": "build"
    }
  ]
}

4️⃣ 配置 tasks.json

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build",
      "type": "shell",
      "command": "g++",
      "args": [
        "-g", "-O0",
        "main.cpp", "-o", "main"
      ]
    }
  ]
}

然后按 F5 就能断点调试。


五、CMake 项目调试配置

cmake_minimum_required(VERSION 3.10)
project(demo)

set(CMAKE_BUILD_TYPE Debug)
add_executable(main main.cpp)

构建:

mkdir build && cd build
cmake ..
make

VS Code 里选 CMake 调试即可。


六、进阶工具(可选)

工具 用途
valgrind 内存泄漏
sanitizer 地址/未定义行为检查
cgdb 更好看的 GDB
lldb clang 调试器

示例(Sanitizer):

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

七、常见问题

❌ 断点不生效
✅ 没加 -g 或开了 -O2

❌ 变量显示 <optimized out>
✅ 用 -O0

❌ VS Code 断不下来
✅ 确认 program 路径正确


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

  • 你用的是 纯命令行 / VS Code / CLion
  • 是否用 CMake
  • Ubuntu 版本

我可以直接给你一套完全可复制的配置。

0 踩