Big*_*Bug 1 jetbrains-ide go docker delve goland
我是新手,深入研究和 GoLand IDE。我想远程调试一些make使用 docker部署和运行的REST 端点(使用 docker + docker-compose)。
我用来调出我的环境的命令是 make myproject
我的端点托管在: localhost:8080
在 GoLand 中创建调试配置时,它指定在运行之前执行
dlv debug --headless --listen=:2345 --api-version 2以下操作:
go build -gcflags='-N -l' github.com/myproject
dlv --listen=:2345 --headless=true --api version=2 exec ./myproject
Run Code Online (Sandbox Code Playgroud)
一旦它在 localhost:8080 上运行,我有没有办法附加到我的项目?如果是这种情况,这些命令会有什么不同?
提前致谢
此命令dlv debug --headless --listen=:2345 --api-version 2 your/package/name允许 delve 编译包,然后启动自身和编译后的二进制文件。
另一方面,这些命令
go build -gcflags='-N -l' github.com/myproject
dlv --listen=:2345 --headless=true --api version=2 exec ./myproject
表明您可以单独编译二进制文件,以防您需要更大的灵活性,然后启动调试器。请记住,根据您拥有的 Go 版本,添加-gcflags='-N -l'或非常重要-gcflags='all=-N -l',以便调试器能够获得有关您的应用程序的更多数据。
至于:
一旦它在 localhost:8080 上运行,我有没有办法附加到我的项目?如果是这种情况,这些命令会有什么不同?
这取决于您在哪里运行该过程。如果它直接在你的机器上,没有虚拟机或容器,那么 IDE 有Run|Attach to Process. 如果该进程在另一台机器上运行,则您需要登录该机器并使用dlv --headless --listen=:2345 --api-version 2 attach <pid>.
几个月前我们发表了一篇专门讨论这个问题的文章,请查看它以获得更详细的回复。
| 归档时间: |
|
| 查看次数: |
992 次 |
| 最近记录: |