go run命令未提供足够的信息进行调试

时间:2019-01-24 10:19:58

标签: go

当我尝试使用go频道中的场景时,遇到了如下代码重现死锁的情况

package main

import (
    "fmt"
)

func main() {
    c := make(chan bool)
    c <- true
}

当我使用

运行它时
  

运行gorouting.go

我得到以下输出

> main.main()
>         E:/GO Samples/gorouting.go:13 +0x57 
> exit status 2

但是当我确实在https://play.golang.org中运行时,我获得了有关该异常的更多详细信息,我是否在命令中丢失了某些内容,或者是否需要在计算机级别进行任何配置?

fatal error: all goroutines are asleep - deadlock!

    goroutine 1 [chan send]:
    main.main()
        /tmp/sandbox592049259/main.go:7 +0x60

我正在使用此配置运行

  

go版本go1.10.3 Windows / amd64

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

当您使用go run xxx.go时,仅编译/运行主包中的文件...与运行go install && xxx相比,其中xxx是可执行文件的名称。 go install构建所有内容并将其复制到bin目录...在本地尝试。