在 Ubuntu 上调试 C++ 代码,常见、有效的方式主要有以下几种。下面从基础准备 → 常用工具 → 实际示例一步步说明。
通常使用 g++ + gdb:
sudo apt update
sudo apt install g++ gdb build-essential
检查版本:
g++ --version
gdb --version
调试必须在编译时加入 -g 参数:
g++ -g main.cpp -o main
⚠️ 不要同时加 -O2 等优化选项,否则调试时变量可能“消失”。
gdb ./main
| 命令 | 作用 |
|---|---|
run / r |
运行程序 |
break main |
在 main 函数下断点 |
break 行号 |
在指定行下断点 |
next / n |
单步(不进入函数) |
step / s |
单步(进入函数) |
print x |
打印变量 |
backtrace / bt |
查看调用栈 |
continue / c |
继续执行 |
quit |
退出 GDB |
// main.cpp
#include <iostream>
using namespace std;
int add(int a, int b) {
return a + b;
}
int main() {
int x = 3, y = 4;
int z = add(x, y);
cout << z << endl;
return 0;
}
调试过程:
g++ -g main.cpp -o main
gdb ./main
(gdb) break main
(gdb) run
(gdb) next
(gdb) print x
(gdb) step
(gdb) backtrace
sudo apt install code
安装扩展:
Ctrl+Shift+D → 创建 launch.json示例 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"
}
]
}
cmake_minimum_required(VERSION 3.10)
project(demo)
set(CMAKE_BUILD_TYPE Debug)
add_executable(main main.cpp)
编译与调试:
mkdir build && cd build
cmake ..
make
gdb ./main
gdb ./main
run
bt
std::cerr << "x = " << x << std::endl;
valgrind 查内存问题sudo apt install valgrind
valgrind ./main
如果你愿意,可以告诉我:
我可以直接给你针对性的调试方案。