在 Linux 下用 C++ 进行远程调试,常见且成熟的做法是:
本地编辑器/IDE + 远程 gdb / gdbserver。下面按“最常用方案 → 进阶方案”给你讲清楚。
# 安装 gdbserver
sudo apt install gdbserver
# 编译程序(必须带调试信息)
g++ -g main.cpp -o app
# 启动 gdbserver
gdbserver :1234 ./app
1234 是监听端口gdbserver :1234 ./app arg1 arg2
gdb ./app
(gdb) target remote <远程IP>:1234
本地 VSCode 配置示例
launch.json
{
"name": "Remote Debug",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/app",
"miDebuggerPath": "/usr/bin/gdb",
"miDebuggerServerAddress": "远程IP:1234",
"cwd": "${workspaceFolder}",
"externalConsole": false
}
⚠️ 注意:
substitute-pathCtrl+Shift+P → Remote-SSH: Connect to Host
gdb ./app
或用 VSCode 的 C++ 调试(和本地一样)
✅ 优点:
set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
远程和本地编译选项必须一致。
docker run -p 1234:1234 ...
gdbserver :1234 ./app
-g-O2telnet <IP> 1234
| 场景 | 推荐 |
|---|---|
| 服务器调试 | gdbserver |
| 日常开发 | VSCode Remote SSH |
| 嵌入式 | gdbserver 必用 |
如果你愿意,可以告诉我:
我可以直接给你一份可复制的配置。