使用 dlv 调试 "go get"
Debug "go get" with dlv
我想使用 dlv
在模块感知模式下调试 go get
。假设我在 /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
我需要在我想要的模块中更新。所以问题是:如何使用 dlv
?
为特定模块调试 go get
根据 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 …
我想使用 dlv
在模块感知模式下调试 go get
。假设我在 /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
我需要在我想要的模块中更新。所以问题是:如何使用 dlv
?
go get
根据 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 …