Использование отладчика delve с модулями go - PullRequest
0 голосов
/ 12 апреля 2020

Взгляните на эту структуру каталогов:

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

Я бы хотел отладить root/foo/main.go с помощью отладчика delve из командной строки. Я пытался создать двоичный файл с использованием 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

Есть мысли?

1 Ответ

1 голос
/ 13 апреля 2020

Ваш root имеет два разных модуля, foo и bar. Вы не можете использовать go build из root для их построения, потому что go build не поддерживает вложенные или несколько модулей. Вы должны запустить его из каталога, в котором находится go.mod, или из любого из его дочерних каталогов.

Поскольку Delve просто вызывает для вас go build, то же самое относится и к dlv debug. Попробуйте сначала cd в foo, а затем выполните dlv debug.

...