我想使用vscode进行远程C / C ++ gdb调试。我在配置时使用“本地调试”扩展名。这是我的 launch.json 配置
{
"type": "gdb",
"request": "launch",
"name": "Launch Program (SSH)",
"target": "./hello",
"cwd": "/home/root/test1/",
"ssh": {
"host": "192.168.15.130",
"cwd": "/home/root/test1/",
"password": "",
"user": "root"
}
目标运行
gdbserver localhost:2000 ./hello
很遗憾,我无法与远程设备连接进行调试。有没有配置此方面的经验?
答案 0 :(得分:2)
您必须在远程计算机上安装gdbserver。例如
apt-get install gdbserver
在远程计算机上启动gdbserver
gdbserver :1234 ./mybinary
选择您喜欢的任何端口-在1234
通过键入
测试从本地计算机到gdbserver的连接gdb
(gdb) target remote myremotehostname:1234
触发任何gdb命令以检查其是否有效-例如c
(或continue
)以继续运行mybinary
。
将以下内容放入您的.vscode/launch.json
{
"name": "C++ Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/mybinary",
"miDebuggerServerAddress": "myremotehostname:1234",
"cwd": "${workspaceRoot}",
"externalConsole": true,
"linux": {
"MIMode": "gdb"
}
}
或使用其他答案中给出的"type": "gdb"
启动配置。
为了使代码浏览和工作正常进行,使源目录在本地和远程端同步非常重要。使用网络文件系统,手动复制,git触发器或类似方法进行设置。
答案 1 :(得分:0)
我在这里找到了这个问题的答案: Is it possible to attach to a remote gdb target with vscode?
摘要:
首先,您需要为VS Code安装本机调试扩展。
然后编辑launch.json文件并添加:
{
"type": "gdb",
"request": "attach",
"name": "Attach to gdbserver",
"executable": "<path to the elf/exe file relative to workspace root in order to load the symbols>",
"target": "X.X.X.X:9999",
"remote": true,
"cwd": "${workspaceRoot}",
"gdbpath": "path/to/your/gdb",
"autorun": [
"any gdb commands to initiate your environment, if it is needed"
]
}
然后,您可以重新启动VS Code并开始调试。 确保没有其他客户端连接到gdb服务器,否则您将收到超时错误。