在 Ubuntu 上调试 C++ 程序,常见做法主要有 GDB(命令行)、VS Code(图形化)、以及 CMake + GDB。下面按从基础到推荐的用法给你讲清楚。
sudo apt update
sudo apt install g++ gdb
-g⚠️ 不加 -g 是无法调试的
g++ -g main.cpp -o main
gdb ./main
| 命令 | 作用 |
|---|---|
run / r |
运行程序 |
break main / b 10 |
设置断点 |
next / n |
单步(不进函数) |
step / s |
单步(进函数) |
print x / p x |
打印变量 |
backtrace / bt |
查看调用栈 |
continue / c |
继续执行 |
quit / q |
退出 |
示例:
(gdb) b main
(gdb) r
(gdb) n
(gdb) p a
sudo apt install gdb
code . # 打开 VS Code
g++ -g main.cpp -o main
launch.json点击 Run → Add Configuration → C++ (GDB/LLDB)
示例:
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Debug",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/main",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"externalConsole": false,
"MIMode": "gdb"
}
]
}
然后按 F5 就能断点调试了。
cmake_minimum_required(VERSION 3.10)
project(demo)
set(CMAKE_BUILD_TYPE Debug)
add_executable(main main.cpp)
mkdir build && cd build
cmake ..
make
launch.json 里:
"program": "${workspaceFolder}/build/main"
✅ 段错误(Segmentation fault)
gdb ./main
run
bt # 看哪里崩了
✅ 打印调用栈
bt full
✅ 条件断点
break 20 if i == 5
如果你愿意,可以告诉我:
我可以直接给你一步步配置。