gpt4 book ai didi

go - 无法解析跟踪 : no EvFrequency event

转载 作者:IT王子 更新时间:2023-10-29 02:01:28 25 4
gpt4 key购买 nike

我生成这样的跟踪:

func 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()
//this is my app:
http.HandleFunc("/", someFunc)
log.Fatal(http.ListenAndServe(":5000", nil))
}

然后我在 CLI 中运行:

$ go run main.go

刷新浏览器,生成trace.out,1.8MB,然后:

$ go tool trace trace.out
018/09/09 13:25:18 Parsing trace...
failed to parse trace: no EvFrequency event

我在这里错过了什么?谢谢。

最佳答案

只有在您停止跟踪后才能查看跟踪数据(即在调用 trace.Stop() 之后)。在您提供的代码中,http.ListenAndServer(...) 将永远阻塞(除非遇到错误)。

您是否要在跟踪停止之前查看跟踪?

一种解决方案可能是等待中断信号,然后在收到中断信号时退出函数,这会导致跟踪停止并写入。

func 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()

http.HandleFunc("/", someFunc)
go func() {
log.Fatal(http.ListenAndServe(":5000", nil))
}()

signalChan := make(chan os.Signal, 1)
signal.Notify(signalChan, os.Interrupt)
<-signalChan
}

关于go - 无法解析跟踪 : no EvFrequency event,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52246540/

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