我已经在我的代码中包含了net/http/pprof
包。然后,我可以舒适地运行pprof
分析器(在 Debian 上):
go tool pprof http://localhost:9000/debug/pprof/profile
诸如top10
甚至生成调用图之类的命令按预期工作。但是,一旦我尝试进入一个函数,它就会失败:
(pprof) list MyFunc
No source information for mypkg.MyFunc
我的GOPATH
设置为我的项目目录。在构建源代码或运行 pprof 时是否需要任何特殊标志或环境变量?
在果朗坚果人的帮助下找到了答案。我需要指定二进制文件:
go tool pprof mybinary http://localhost:9000/debug/pprof/profile
这样就可以找到源代码,并可以使用"list"命令列出源代码。
我在"net/http/pprof"
上遇到了同样的问题,尽管在Windows上。 改用"runtime/pprof"
,pprof.StartCPUProfile / StopCPUProfile
解决了它。