파이프 전송
파이프 전송은 파이프 프로그램을 통해 원격 쉘로 통신할 수 있도록 합니다. 예를 들어 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을 추가해야 할 수도 있습니다.
"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에서 전체 예제를 볼 수 있습니다.