管道传输
管道传输允许通过管道程序与远程 Shell 通信。例如,Linux 上的 `ssh`。随着 Visual Studio Code 远程开发 的推出,管道传输主要适用于物联网场景。
操作方法
pipeTransport
是 launch.json 文件中的一个选项。其结构如下
"pipeTransport": {
"pipeCwd": "/usr/bin",
"pipeProgram": "/usr/bin/ssh",
"pipeArgs": [
"-pw",
"<password>",
"[email protected]"
],
"debuggerPath": "/usr/bin/gdb"
},
pipeArgs
可以是任何用于设置和认证管道连接的必要参数集。在示例中,使用的是密码,但您也可以使用 SSH 密钥。
您可能还需要添加 sourceFileMap
来映射远程 Shell 上代码所在路径到本地路径
"sourceFileMap": {
// "remote": "local"
"/home/user/src": "/src/projectA/src"
}
连接
您还可以使用上述 pipeTransport
块来连接到远程进程。在连接情况下,您需要指定 processId
。扩展程序可以从远程计算机查询进程。为此,将 processId": "${command:pickProcess}
更改为 processId": "${command:pickRemoteProcess}
。pipeTransport
设置将用于查询远程计算机上的进程。然后从下拉列表中选择进程。与 launch
一样,您可能需要配置 sourceFileMap
。
Docker 示例
pipeTransport
还可用于调试 Docker 容器中的进程。对于连接,launch.json 将包括
"pipeTransport": {
"pipeCwd": "${workspaceFolder}",
"pipeProgram": "docker",
"pipeArgs": [
"exec",
"-i",
"hello_gdb",
"sh",
"-c"
],
"debuggerPath": "/usr/bin/gdb"
},
其中 hello_gdb
是您容器的名称。
通过启动容器,然后使用相同的 pipeTransport
在容器中启动其他进程来启动进程。查看此 launch.json 以获取 完整示例。