如何解决使用 dlv 调试“go get”
我想使用 go get
在模块感知模式下调试 dlv
。假设我在 /some/dir/mymod
有一个 go 模块。要在模块感知模式下使用 go get,我必须执行以下操作
$ cd /some/dir/mymod
$ go get
但是如果我想用 dlv
调试 go 命令本身,我将不得不执行以下操作
$ cd /usr/local/go/src/cmd/go
$ dlv debug -- get [some args here]
如您所见,为了使用 dlv
,我需要在我想要调试的模块中,但是为了使用 go get
,我需要在我想要更新的模块中.所以问题是:如何使用 go get
调试特定模块的 dlv
?
解决方法
根据 https://github.com/go-delve/delve/blob/master/Documentation/usage/dlv_debug.md,dlv debug
会导致 Delve“编译并开始调试当前目录中的主包,或指定的包”(重点是我的)。
所以你应该能够做到:
cd /some/dir/mymod
dlv debug cmd/go -- get …
也许
cd /some/dir/mymod
dlv debug $(go env GOROOT)/src/cmd/go -- get …
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。