【问题标题】:golang debug session in vscode panicsvscode恐慌中的golang调试会话
【发布时间】:2021-04-06 22:11:46
【问题描述】:

这是我的go 项目的结构

▶ tree -L 2
.
├── cmd
│   ├── app.go
│   ├── canary.go
├── go.mod
├── go.sum
├── lib
│   ├── clisupport
│   ├── fileutils
├── myapp
├── myapp.go
├── pkg
│   ├── app
│   ├── canary

main 函数在myapp.go 文件中。

我想启动一个调试会话,所以我使用以下launch.json 文件

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [

        {
            "name": "myconfig",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${workspaceFolder}",
            "args": []
        }
    ]
}

但是,当我单击调试按钮时,进程会出现恐慌,并出现如下所示的巨大痕迹:

/Users/pkaramol/go/pkg/mod/golang.org/x/oauth2@v0.0.0-20190604053449-0f29369cfe45/google/default.go:17:2: missing go.sum entry for module providing package cloud.google.com/go/compute/metadata (imported by golang.org/x/oauth2/google); to add:
    go get golang.org/x/oauth2/google@v0.0.0-20190604053449-0f29369cfe45
/Users/pkaramol/go/pkg/mod/k8s.io/client-go@v0.16.8/discovery/discovery_client.go:28:2: missing go.sum entry for module providing package github.com/golang/protobuf/proto (imported by k8s.io/client-go/discovery); to add:
    go get k8s.io/client-go/discovery@v0.16.8
/Users/pkaramol/go/pkg/mod/github.com/googleapis/gnostic@v0.1.0/extensions/extensions.go:23:2: missing go.sum entry for module providing package github.com/golang/protobuf/ptypes (imported by github.com/googleapis/gnostic/extensions); to add:
    go get github.com/googleapis/gnostic/extensions@v0.1.0
/Users/pkaramol/go/pkg/mod/github.com/googleapis/gnostic@v0.1.0/OpenAPIv2/OpenAPIv2.pb.go:78:8: missing go.sum entry for module providing package github.com/golang/protobuf/ptypes/any (imported by github.com/googleapis/gnostic/OpenAPIv2); to add:
    go get github.com/googleapis/gnostic/OpenAPIv2@v0.1.0
/Users/pkaramol/Workspace/myapp_WORKTREE/myapp/cmd/app.go:13:2: missing go.sum entry for module providing package github.com/spf13/viper (imported by github.com/myorganisation/myapp/cmd); to add:
    go get github.com/myorganisation/myapp/cmd
/Users/pkaramol/go/pkg/mod/google.golang.org/api@v0.15.0/transport/http/dial.go:15:2: missing go.sum entry for module providing package go.opencensus.io/plugin/ochttp (imported by google.golang.org/api/transport/http); to add:
    go get google.golang.org/api/transport/http@v0.15.0
/Users/pkaramol/go/pkg/mod/google.golang.org/api@v0.15.0/transport/http/internal/propagation/http.go:19:2: missing go.sum entry for module providing package go.opencensus.io/trace (imported by google.golang.org/api/transport/http/internal/propagation); to add:
    go get google.golang.org/api/transport/http/internal/propagation@v0.15.0
/Users/pkaramol/go/pkg/mod/google.golang.org/api@v0.15.0/transport/http/internal/propagation/http.go:20:2: missing go.sum entry for module providing package go.opencensus.io/trace/propagation (imported by google.golang.org/api/transport/http/internal/propagation); to add:
    go get google.golang.org/api/transport/http/internal/propagation@v0.15.0
/Users/pkaramol/go/pkg/mod/github.com/googleapis/gax-go/v2@v2.0.5/call_option.go:36:2: missing go.sum entry for module providing package google.golang.org/grpc (imported by google.golang.org/api/option); to add:
    go get google.golang.org/api/option@v0.15.0
/Users/pkaramol/go/pkg/mod/github.com/googleapis/gax-go/v2@v2.0.5/call_option.go:37:2: missing go.sum entry for module providing package google.golang.org/grpc/codes (imported by github.com/googleapis/gax-go/v2); to add:
    go get github.com/googleapis/gax-go/v2@v2.0.5
/Users/pkaramol/go/pkg/mod/google.golang.org/api@v0.15.0/internal/pool.go:10:2: missing go.sum entry for module providing package google.golang.org/grpc/naming (imported by google.golang.org/api/internal); to add:
    go get google.golang.org/api/internal@v0.15.0
/Users/pkaramol/go/pkg/mod/github.com/googleapis/gax-go/v2@v2.0.5/call_option.go:38:2: missing go.sum entry for module providing package google.golang.org/grpc/status (imported by github.com/googleapis/gax-go/v2); to add:
    go get github.com/googleapis/gax-go/v2@v2.0.5
exit status 1
Process exiting with code: 1

为什么会失败?

【问题讨论】:

    标签: go debugging


    【解决方案1】:

    你必须运行go mod tidy

    Tidy 确保 go.mod 与模块中的源代码匹配。 [...] 它还将所有丢失的条目添加到 go.sum 并删除任何不必要的 那些。

    这可能发生在调试时而不发生在编译/构建时的原因——取决于你在进入调试模式之前实际做了什么——可能是:

    • this bug
    • 或者错误总和的依赖项仅用于测试,go build 忽略以_test.go 结尾的文件

    编译包时,build 会忽略以 '_test.go' 结尾的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-21
      • 2015-09-28
      • 2020-01-28
      • 2021-07-11
      • 2014-10-10
      • 1970-01-01
      • 2020-10-23
      相关资源
      最近更新 更多