희망이 권리를 설명 할 수 있습니다.원격 디버깅 - 확인되지 않은 중단 점
업데이트 : dlv debug -l 127.0.0.1:2345
이 작동하는지 확인할 수 있습니다. 따라서 나는 VsCode에 있어야합니다 launch.json
업데이트 : 패닉이 제거되었습니다. 다른 버전의 이동 버전이있었습니다. 이제 VsCode의 디버거가 작동하지 않고 "Unverified breakpoint"라고 표시됩니다. 하지만 코드가있는 폴더에있는 경우 터미널에서 dlv
을 사용하면 올바르게 작동합니다.
this 샘플 코드로 원격 디버깅을 시도하고 있습니다.
변경 사항은 this과 함께 작동합니다.
수행 할 작업을 알고 있습니까? "program": "${workspaceRoot}/src/app",
과 같은 경로를 포함하도록 launch.json
을 "program": "${workspaceRoot}",
으로 변경하려고했습니다.
Launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceRoot}",
"env": {},
"args": []
},
{
// To remote debug in Docker, run the following before debugging:
// # docker build -t webapp-go .
// # docker run -d --name webapp-go --privileged -p 8080:8080 -p 2345:2345 webapp-go
// # docker run -d --name webapp-go --privileged -p 8080:8080 -p 2345:2345 -v "${PWD%/*}/src/app/":/go/src/app webapp-go
// And then each time you want to restart debugging:
// # docker restart
"name": "Remote debug in Docker",
"type": "go",
"request": "launch",
"mode": "remote",
"program": "${workspaceRoot}",
"env": {},
"args": [],
"remotePath": "/go/src/app",
"port": 2345, // Port
"host": "127.0.0.1" // Docker IP
/* "preLaunchTask": "docker" */
}
]
}
Dockerfile는 :
FROM golang:1.6
RUN go get -u -v github.com/derekparker/delve/cmd/dlv
EXPOSE 2345
# RUN mkdir -p /go/src/app
# WORKDIR /go/src/app
# VOLUME ["src/app2"]
VOLUME ["/go/src/app"]
RUN mkdir -p /go/src/app
WORKDIR /go/src/app
COPY src/app /go/src/app
RUN go-wrapper download
RUN go-wrapper install
EXPOSE 8080
CMD ["dlv", "debug", "--headless", "--listen=:2345", "--log"]