管道傳輸
管道傳輸允許透過管道程式與遠端 Shell 進行通訊。例如,Linux 上的 ssh
。隨著 Visual Studio Code 遠端開發的推出,管道傳輸主要與 IoT 情境相關。
如何操作
pipeTransport
是 launch.json 檔案中的一個選項。結構如下所示
"pipeTransport": {
"pipeCwd": "/usr/bin",
"pipeProgram": "/usr/bin/ssh",
"pipeArgs": [
"-pw",
"<password>",
"user@10.10.10.10"
],
"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 以取得完整範例。