【发布时间】:2020-04-26 08:53:19
【问题描述】:
我在需要调试的 docker 容器中运行一个进程。该过程在 docker 的入口点通过
dlv debug /go/src/path/to/package --headless --listen=:2345 --log 用于稍后在 VSCode 中启用调试。
docker 容器通过以下方式启动
docker run --rm -it -p 2345:2345 my_image:tag。注意 delve 的端口是暴露的。
在 VSCode 中,我将launch.json 定义如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach remote",
"type": "go",
"request": "attach",
"mode": "remote",
"port": 2345,
"host": "127.0.0.1",
"apiVersion": 1
}
]
}
不是很清楚,但 UI 让我相信我现在已连接到远程无头调试器并准备调试。我定义了一个断点,我知道它会被我可以发送远程进程的请求击中。我发送那个请求,我得到了一个结果,并且那个断点没有命中,说明我还没有实现远程调试。
我的 VSCode “附加远程”配置有问题吗?我可以使用dlv connect :2345 进行命令行调试,并且实际上可以很好地调试远程进程,这表明无头服务器正常工作。我宁愿在 VSCode 中使用源代码进行调试。
【问题讨论】:
标签: go visual-studio-code vscode-debugger delve