GO中的分析 - 没有符号

时间:2012-07-24 14:49:13

标签: profiling go

我正在尝试使用此处描述的过程来分析GO程序:

http://blog.golang.org/2011/06/profiling-go-programs.html  

但是pprof显示地址而不是输出中的函数名称:

(pprof) top10
Total: 2113 samples
     298  14.1%  14.1%      298  14.1% 0000000000464d34
     179   8.5%  22.6%      179   8.5% 0000000000418e83
     157   7.4%  30.0%      157   7.4% 0000000000418e60
     112   5.3%  35.3%      112   5.3% 0000000000403293
     101   4.8%  40.1%      101   4.8% 0000000000464d4f
      83   3.9%  44.0%       83   3.9% 000000000040329c
      77   3.6%  47.7%       77   3.6% 0000000000418e7a
      62   2.9%  50.6%       62   2.9% 0000000000456a38
      37   1.8%  52.3%       37   1.8% 0000000000418e41
      37   1.8%  54.1%       37   1.8% 0000000000435f57

有没有人经历过这个并找到了解决办法?

提及here 6prof工具可用于替代上述程序。有谁知道它是否仍然存在以及在哪里找到它?

我在Win7 64上使用go1.0.2。

谢谢!

3 个答案:

答案 0 :(得分:2)

我修复了perl脚本以在Windows下工作。

详细信息:http://exneehilo.blogspot.com.au/2012/07/profiling-go-with-pprof-under-windows.html

答案 1 :(得分:0)

我自己没有检查过,但据我记忆,pprof脚本的问题在于它使用的是标准(mingw)版本的nm,而不是Go特定的nm。 Go发行版有自己的nm程序:

C:>去工具nm 用法:nm [-aghnsTu]文件... 去工具nm:退出状态1

C:>

理解所有Go二进制格式,而mingw附带的nm程序则不然。查看nm_commands变量的pprof perl脚本。它列出了几个可能的候选人,但没有一个是你想要的。如果你改为指向Go nm,它应该可以工作。

欢迎在此处报告错误http://code.google.com/p/go/issues。我认为它曾经起作用,因为6nm在nm_commands中列出,但是Go nm已经被重命名为nm并且已经移出用户PATH。

亚历

答案 2 :(得分:0)

我有类似的问题。

解决方案是在实际的建筑应用中。因此,当我使用“ go build test_app.go ”构建并运行“ ./ test_app ”之后,我得到了正确的分析文件,其中包含函数名称。