在 Ubuntu 上用 C++ 调试,最常见的是使用 gdb(GNU Debugger),也可以配合 VS Code、CLion 等图形化工具。下面从基础命令行到图形化方式给你讲清楚。
调试前必须带调试信息编译:
g++ -g -O0 main.cpp -o main
-g:生成调试信息-O0:关闭优化(否则变量可能被优化掉)gdb ./main
| 命令 | 作用 |
|---|---|
run / r |
运行程序 |
break main |
在 main 函数打断点 |
break 10 |
在第 10 行打断点 |
break funcname |
在函数处打断点 |
next / n |
单步执行(不进入函数) |
step / s |
单步执行(进入函数) |
print x / p x |
打印变量 |
continue / c |
继续执行 |
backtrace / bt |
查看调用栈 |
frame 1 |
切换到栈帧 |
quit |
退出 gdb |
(gdb) break main
(gdb) run
(gdb) next
(gdb) print a
gdb ./main
run
崩溃后输入:
bt
可以看到崩溃在哪一行。
sudo apt install gdb
code .
launch.json示例:
{
"name": "C++ Debug",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/main",
"miDebuggerPath": "/usr/bin/gdb",
"stopAtEntry": false
}
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
gdb ./your_program
或 VS Code 直接选 Debug 配置。
valgrind:内存泄漏valgrind ./main
lldb(LLVM 调试器)gdbgui(网页版 gdb)✅ Ubuntu + g++ -g + VS Code + gdb
如果你愿意,可以告诉我:
我可以给你针对性的调试示例。