在 Ubuntu 上调试 C++ 程序,最常用、最成熟的方案是 GDB + GCC/G++,也可以配合 VS Code 或 CMake 使用。下面按常见场景给你一个完整说明。
sudo apt update
sudo apt install build-essential gdb
验证:
g++ --version
gdb --version
g++ -g -O0 main.cpp -o main
说明:
-g:生成调试信息(必须)-O0:关闭优化(否则变量可能被优化掉)✅ 没有 -g 就无法用 GDB 正常调试
gdb ./main
| 命令 | 作用 |
|---|---|
run / r |
运行程序 |
break main |
在 main 函数设断点 |
break test.cpp:10 |
在第 10 行设断点 |
next / n |
下一行(不进入函数) |
step / s |
进入函数 |
print x |
打印变量 |
watch x |
监视变量变化 |
backtrace / bt |
查看调用栈 |
continue / c |
继续执行 |
quit |
退出 |
示例:
break main
run
next
print i
gdb --args ./main arg1 arg2
或在 gdb 中:
set args arg1 arg2
run
./main
gdb ./main
run
bt
bt 会显示调用栈,通常能直接定位问题行。
sudo snap install code --classic
g++ -g main.cpp -o main
示例:
{
"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",
"setupCommands": [
{
"description": "Enable pretty-printing",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
然后按 F5 开始调试。
set(CMAKE_BUILD_TYPE Debug)
或:
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
然后同样用 GDB 或 VS Code 调试。
-g-O2 优化-O0)在 gdb 中:
set print pretty on
或安装:
sudo apt install gdb-python
✅ 最小调试流程:
sudo apt install build-essential gdb
g++ -g -O0 main.cpp -o main
gdb ./main
如果你愿意,可以告诉我:
我可以给你更针对的配置方案。