温馨提示×

linux c++配置怎样远程调试

小樊
46
2026-09-05 04:53:55
栏目: 编程语言

在 Linux 下用 C++ 进行远程调试,常见且成熟的做法是:
本地编辑器/IDE + 远程 gdb / gdbserver。下面按“最常用方案 → 进阶方案”给你讲清楚。


一、最常用方案:gdb + gdbserver(推荐)

1️⃣ 远程机器(被调试端)

# 安装 gdbserver
sudo apt install gdbserver

# 编译程序(必须带调试信息)
g++ -g main.cpp -o app

# 启动 gdbserver
gdbserver :1234 ./app
  • 1234 是监听端口
  • 可以加参数:
gdbserver :1234 ./app arg1 arg2

2️⃣ 本地机器(开发端)

方法 A:命令行 gdb

gdb ./app
(gdb) target remote <远程IP>:1234

方法 B:VSCode(最推荐)

本地 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-path

二、VSCode + SSH(更省事)

1️⃣ 安装插件

  • Remote - SSH
  • C/C++

2️⃣ 连接远程服务器

Ctrl+Shift+P → Remote-SSH: Connect to Host

3️⃣ 在远程直接调试

gdb ./app

或用 VSCode 的 C++ 调试(和本地一样)

✅ 优点:

  • 不用同步代码
  • 不用 gdbserver
  • 最像本地开发

三、CMake 项目注意事项

set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")

远程和本地编译选项必须一致。


四、Docker / WSL 特殊情况

Docker

docker run -p 1234:1234 ...
gdbserver :1234 ./app

WSL

  • 可直接用 gdb
  • 或用 Remote-WSL 插件

五、常见问题

❌ 断点不命中

  • 没加 -g
  • 优化开了 -O2
  • 源码路径不一致

❌ 连接失败

telnet <IP> 1234
  • 防火墙
  • 云服务器安全组

六、总结推荐

场景 推荐
服务器调试 gdbserver
日常开发 VSCode Remote SSH
嵌入式 gdbserver 必用

如果你愿意,可以告诉我:

  • 用的是 VSCode / CLion / Qt Creator
  • 是否 Docker / 服务器 / 嵌入式
  • 本地连远程 还是 纯命令行

我可以直接给你一份可复制的配置

0