在 Ubuntu 上远程调试 C++ 程序,常见做法有 GDB(命令行)+ gdbserver 和 VS Code 远程调试。下面按常用程度给你一套完整说明。
sudo apt update
sudo apt install gdb gdbserver
sudo apt install gdb
g++ -g -O0 -o app main.cpp
⚠️ 注意:
-g:生成调试信息-O0:关闭优化(否则变量可能被优化掉)gdbserver :1234 ./app
gdbserver :1234 --attach <pid>
1234 是端口号,可自定义。
gdb ./app
进入 gdb 后执行:
target remote 目标机IP:1234
例如:
target remote 192.168.1.100:1234
✅ 之后就可以使用标准 gdb 命令调试:
b main
c
n
s
p var
bt
✅ 程序崩溃在远程,如何调试?
gdbserver :1234 --attach <pid>
✅ 断点不生效?
-g-O2)✅ 防火墙问题
sudo ufw allow 1234
Remote Explorer → SSH → 连接远程主机
{
"version": "0.2.0",
"configurations": [
{
"name": "Remote Debug",
"type": "cppdbg",
"request": "launch",
"program": "/home/user/app",
"args": [],
"stopAtEntry": true,
"cwd": "/home/user",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing",
"text": "-enable-pretty-printing"
}
],
"pipeTransport": {
"debuggerPath": "/usr/bin/gdb",
"pipeProgram": "ssh",
"pipeArgs": ["user@192.168.1.100"],
"pipeCwd": "${workspaceFolder}"
},
"sourceFileMap": {
"/home/user": "${workspaceFolder}"
}
}
]
}
点击 Run → Start Debugging 即可。
| 方式 | 适合场景 | 易用性 |
|---|---|---|
| gdb + gdbserver | 服务器/嵌入式 | ⭐⭐⭐ |
| VS Code Remote | 日常开发 | ⭐⭐⭐⭐⭐ |
| CLion Remote | JetBrains 用户 | ⭐⭐⭐⭐ |
| 错误 | 原因 |
|---|---|
No symbol table info |
没加 -g |
Connection refused |
gdbserver 没启动 / 防火墙 |
| 断点不命中 | 优化级别过高 |
如果你愿意,可以告诉我:
我可以给你 完全针对你环境的配置示例。