我正在尝试使用Go设置VS代码,并且在附加调试器时得到一个错误。由于我是全新的VS代码,我没有任何线索,为什么。
我已经安装了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这个结构是否不正确?有什么推荐的方法来完成这个任务吗?
发布于 2018-08-30 15:49:11
此错误是因为您正在尝试调试非主包。如果您有设置来调试具有main函数的文件,则从主包调试该文件。否则,可以创建用于调试整个包的设置。但是对于您的问题,只需将包名更改为
package main
import "fmt"
// SendEmail - Sends The email
func SendEmail() {
}
func main() {
fmt.Println("Hello World!")
i := 101
fmt.Println(i)
}或者从具有主函数的主包中运行调试器。要调试整个工作区,请将launch.json中的设置更改为:
{
"name": "Remote",
"type": "go",
"request": "launch",
"mode": "remote",
"remotePath": "${workspaceRoot}",
"port": 2345,
"host": "127.0.0.1",
"program": "${workspaceRoot}",
"env": {}
}https://stackoverflow.com/questions/52100959
复制相似问题