gpt4 book ai didi

debugging - Golang 调试器未运行

转载 作者:数据小太阳 更新时间:2023-10-29 03:34:24 26 4
gpt4 key购买 nike

我正在尝试使用 Go 设置 VS Code,但在附加调试器时出现错误。由于我是 VS Code 的新手,所以我不知道为什么。

我已经安装了 delve 调试器:

go get -u github.com/derekparker/delve/cmd/dlv
delv -v
delv 9.11.3-1ubuntu1.1-Ubuntu

当我尝试将调试器附加到一个非常简单的 golang 文件时出现此错误:

API server listening at: 127.0.0.1:2345
time="2018-08-30T09:39:57-06:00" level=info msg="launching process with args: [/home/craig/Documents/GoLang/src/github.com/mornindew/sharedPackages/email/debug]" layer=debugger
Can not debug non-main package
Process exiting with code: 1

代码:

package email

import "fmt"

// SendEmail - Sends The email
func SendEmail() {

}

func main() {
fmt.Println("Hello World!")
i := 101
fmt.Println(i)
}

这一切都非常有帮助,非常感谢。

这让我觉得我的项目组织有问题。我有一个项目有一堆可重用的包。我不想为每个单独的包创建一个 github 存储库。本质上:

package1
-- package1.go
-- package1_test.go
package2
-- package2.go
-- package2_test.go
...
package10
-- package10.go
-- package10_test.go

这是否结构不正确?有推荐的方法来完成这个吗?

最佳答案

错误是因为您正在尝试调试非主程序包。如果您有使用 main 函数调试文件的设置,则从 main 包调试文件。否则您可以创建用于调试整个包的设置。但是对于您的问题,只需将包名称更改为

package main

import "fmt"

// SendEmail - Sends The email
func SendEmail() {

}

func main() {
fmt.Println("Hello World!")
i := 101
fmt.Println(i)
}

或者使用 main 函数从主包运行调试器。要调试整个工作区,请将 launch.json 中的设置更改为:

{
"name": "Remote",
"type": "go",
"request": "launch",
"mode": "remote",
"remotePath": "${workspaceRoot}",
"port": 2345,
"host": "127.0.0.1",
"program": "${workspaceRoot}",
"env": {}
}

关于debugging - Golang 调试器未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52100959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com