在 Ubuntu 上配置 C++ 调试环境,通常包含 编译器、调试器、编辑器/IDE 三部分。下面按从简单到完整的方式给你说明,你可以按需选择。
sudo apt update
sudo apt install build-essential
验证:
g++ --version
sudo apt install gdb
验证:
gdb --version
⚠️ 调试必须加 -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 ./main
| 命令 | 说明 |
|---|---|
run |
运行程序 |
break main |
在 main 函数打断点 |
break 文件名:行号 |
在指定行打断点 |
next |
单步执行(不进入函数) |
step |
单步执行(进入函数) |
print 变量名 |
查看变量 |
backtrace |
查看调用栈 |
continue |
继续执行 |
quit |
退出 |
(gdb) break main
(gdb) run
(gdb) next
(gdb) print a
(gdb) continue
sudo snap install code --classic
或从官网下载:https://code.visualstudio.com/
project/
├── main.cpp
├── .vscode/
│ ├── tasks.json
│ └── launch.json
tasks.json(编译任务){
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "g++",
"args": [
"-g",
"main.cpp",
"-o",
"main"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
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"
}
]
}
F5 启动调试✅ 没加 -g
✅ 调试的是 release 版本
✅ 程序被优化(-O2)
✅ 正确方式:
g++ -g -O0 main.cpp -o main
| 场景 | 推荐 |
|---|---|
| 新手 | VS Code + GDB |
| 服务器 | GDB |
| 大型项目 | VS Code / CLion |
gdb -tui ./main(文本界面)valgrind(内存调试)sanitizers:g++ -fsanitize=address -g main.cpp
如果你愿意,我可以:
✅ 给你一个 完整可运行的示例项目
✅ 教你 调试段错误 / 内存问题
✅ 帮你配置 CMake + VS Code 调试
你现在用的是 命令行还是 VS Code?