将 delve 调试器与 go 模块一起使用

Using the delve debugger with go modules

看看这个目录结构:

/root
    /bar
        go.mod
        go.sum
        main.go
        main_test.go
    /foo
        go.mod
        go.sum
        main.go
        main_test.go

我想从命令行使用 delve 调试器调试 root/foo/main.go。我试过使用 go build 构建二进制文件,然后使用 dlv debug <binary> 并出现如下错误:

can't load package: package foo is not in GOROOT (/usr/local/opt/go/libexec/src/foo)
exit status 1

有什么想法吗?

您的 root 中有两个不同的模块,foobar。您不能使用 root 中的 go build 来构建它们,因为 go build 不支持嵌套或多个模块。您必须从 go.mod 所在的目录或其任何子目录中 运行 它。

由于 Delve 只是为您调用 go build,因此 dlv debug 也是如此。先尝试cd变成foo,然后运行dlv debug.