【问题标题】:Using the delve debugger with go modules将 delve 调试器与 go 模块一起使用
【发布时间】:2020-04-13 06:11:33
【问题描述】:

看看这个目录结构:

/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

有什么想法吗?

【问题讨论】:

    标签: go debugging delve


    【解决方案1】:

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

    由于 Delve 只是为您调用 go build,因此同样适用于 dlv debug。尝试先将cd 转换为foo,然后运行dlv debug

    【讨论】:

    • 我在正确的目录中做了一个go build,但由于某种原因,当我明确地给它构建二进制文件时,dlv 不起作用(可能与嵌套模块有关?) .只需在我想调试的模块中输入 dlv debug 即可,谢谢!
    猜你喜欢
    • 2016-08-18
    • 1970-01-01
    • 2019-08-07
    • 2017-09-20
    • 2019-07-30
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多