温馨提示×

Ubuntu如何配置C++调试

小樊
39
2026-07-18 07:28:39
栏目: 编程语言

在 Ubuntu 上配置 C++ 调试环境,通常包含 编译器、调试器、编辑器/IDE 三部分。下面按从简单到完整的方式给你说明,你可以按需选择。


一、安装基础工具(必须)

1️⃣ 安装 GCC / G++ 编译器

sudo apt update
sudo apt install build-essential

验证:

g++ --version

2️⃣ 安装调试器 GDB

sudo apt install gdb

验证:

gdb --version

二、编译 C++ 程序(带调试信息)

⚠️ 调试必须加 -g 参数

示例程序 main.cpp

#include <iostream>
using namespace std;

int main() {
    int a = 5;
    int b = 0;
    int c = a / b;  // 故意制造错误
    cout << c << endl;
    return 0;
}

编译

g++ -g main.cpp -o main

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

1️⃣ 启动调试

gdb ./main

2️⃣ 常用 GDB 命令

命令 说明
run 运行程序
break main 在 main 函数打断点
break 文件名:行号 在指定行打断点
next 单步执行(不进入函数)
step 单步执行(进入函数)
print 变量名 查看变量
backtrace 查看调用栈
continue 继续执行
quit 退出

示例调试流程

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

四、使用 VS Code(推荐,图形化调试)

1️⃣ 安装 VS Code

sudo snap install code --classic

或从官网下载:https://code.visualstudio.com/


2️⃣ 安装 VS Code 插件

  • C/C++(Microsoft)
  • C++ Intellisense(可选)

3️⃣ 配置调试(关键步骤)

(1)创建项目结构

project/
├── main.cpp
├── .vscode/
│   ├── tasks.json
│   └── launch.json

(2)tasks.json(编译任务)

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

(3)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️⃣ 开始调试

  • 设置断点(点击行号左侧)
  • F5 启动调试
  • 使用调试面板:单步、查看变量、调用栈

五、常见问题

❓ 为什么不能调试?

✅ 没加 -g
✅ 调试的是 release 版本
✅ 程序被优化(-O2

✅ 正确方式:

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

❓ Ubuntu 上用什么调试最好?

场景 推荐
新手 VS Code + GDB
服务器 GDB
大型项目 VS Code / CLion

六、进阶(可选)

  • gdb -tui ./main(文本界面)
  • valgrind(内存调试)
  • sanitizers
g++ -fsanitize=address -g main.cpp

如果你愿意,我可以: ✅ 给你一个 完整可运行的示例项目
✅ 教你 调试段错误 / 内存问题
✅ 帮你配置 CMake + VS Code 调试

你现在用的是 命令行还是 VS Code

0