在 Ubuntu 上调试 C++ 程序,通常会用到 编译工具(如 g++) 和 调试工具(如 gdb)。下面我从最基础到进阶一步步说明,适合新手到有一定基础的人。
先确保你安装了编译器和调试器:
sudo apt update
sudo apt install build-essential gdb
build-essential:包含 g++、make 等gdb:GNU 调试器检查版本:
g++ --version
gdb --version
创建一个文件 test.cpp:
#include <iostream>
using namespace std;
int add(int a, int b) {
int c = a + b;
return c;
}
int main() {
int x = 10;
int y = 20;
int z = add(x, y);
cout << "result = " << z << endl;
return 0;
}
g++ -g test.cpp -o test
⚠️ 关键点:
-g会生成调试信息,否则 gdb 看不到源码和变量
gdb ./test
你会看到类似:
(gdb)
break main
或指定行号:
break test.cpp:6
run
next # 下一步(不进入函数)
step # 进入函数
print x
print z
backtrace
continue
quit
gdb ./test
(gdb) break main
(gdb) run
(gdb) next
(gdb) print x
(gdb) step
(gdb) backtrace
(gdb) continue
(gdb) quit
gdb ./test
run
程序崩溃后:
backtrace
可以看到是哪一行导致的错误。
✅ 确认是否加了 -g
✅ 确认是否在 main 之前就崩了
如果你不想一直敲 gdb 命令,可以用 VS Code
sudo snap install code --classic
-gg++ -g test.cpp -o test
点击:
Run and Debug → C++ (GDB/LLDB)
VS Code 会生成 launch.json,你可以直接:
✅ 比命令行友好很多
如果你后面用到:
std::vectorstd::threadstd::mutex可以告诉我,我可以教你:
Ubuntu 调试 C++ = g++ -g + gdb(或 VS Code)
如果你愿意,可以把你的 代码 / 报错信息 / 项目结构 发出来,我可以手把手帮你调。