尝试使用 go tool trace 解析 trace 时出错

Error when trying to parse trace using go tool trace

我正在学习 JustForFunc episode 22

的教程

在 main.go 中的 main() 开头添加了这两行:

trace.Start(os.Stdout)
defer trace.Stop()

使用 go build -o appName

构建二进制文件

时间为 time ./appName > m.trace

最后尝试用 go tool trace m.trace 打开跟踪 但出现以下错误:

2017/11/10 19:15:38 Parsing trace...
failed to parse trace: unknown event type 50 at offset 0x16

关于我的代码的更多背景知识(golang 1.9,linux):它是一个使用 gin-gonic 构建的用于 GET 请求的服务器。我添加了额外的代码行 time.AfterFunc(20*time.Seconds, func(){closeServer()}) 以在 20 秒后关闭我的服务器,这样我就可以向它发出一些请求,然后停止服务器退出程序。

我找到了解决问题的办法。 我遵循了本教程 https://making.pusher.com/go-tool-trace/。 添加代码到 main :

f, err := os.Create("trace.out")
if err != nil {
    panic(err)
}
defer f.Close()

err = trace.Start(f)
if err != nil {
    panic(err)
}
defer trace.Stop()
// Your program here

它似乎运行良好。我不知道是什么导致了这个问题:(