为什么`go pprof`工具显示地址而不是函数名称?

为什么`go pprof`工具显示地址而不是函数名称?

问题描述:

$ go tool pprof pgears.go profilefile.prof
addr2line: crackhdr: unknown header type
Welcome to pprof!  For help, type 'help'.
(pprof) top
Total: 8 samples
       5  62.5%  62.5%        5  62.5% 0000000000028a8b
       1  12.5%  75.0%        1  12.5% 000000000002295c
       1  12.5%  87.5%        1  12.5% 000000000009375a
       1  12.5% 100.0%        1  12.5% 00000000000d278a
       0   0.0% 100.0%        1  12.5% 000000000000252a
       0   0.0% 100.0%        1  12.5% 000000000000259d
       0   0.0% 100.0%        2  25.0% 0000000000017d9e
       0   0.0% 100.0%        2  25.0% 000000000001a2bf
       0   0.0% 100.0%        6  75.0% 000000000001b630
       0   0.0% 100.0%        1  12.5% 0000000000045401
(pprof)

Why go tool pprof shows addresses instead of function names? from http://google-perftools.googlecode.com/svn/trunk/doc/cpuprofile.html or http://blog.golang.org/profiling-go-programs We know it must be function name.

Or how can I change the byte information to function name?

Operation System: Mac OS 10.9.2
Go Version: go1.2 darwin/amd64

  $ go工具pprof pgears.go profilefile.prof 
addr2line:crackhdr:未知的标头类型
欢迎使用 pprof! 要获得帮助,请键入“帮助”。
(pprof)top 
总计:8个样本
 5 62.5%62.5%5 62.5%0000000000028a8b 
 1 12.5%75.0%1 12.5%000000000002295c 
 1 12.5%87.5%1 12.5  %000000000009375a 
 1 12.5%100.0%1 12.5%00000000000d278a 
 0 0.0%100.0%1 12.5%000000000000252a 
 0 0.0%100.0%1 12.5%000000000000259d 
 0 0.0%100.0%2 25.0%0000000000017d9e 
 0 0.0  %100.0%2 25.0%000000000001a2bf 
 0 0.0%100.0%6 75.0%000000000001b630 
 0 0.0%100.0%1 12.5%0000000000045401 
(pprof)
  code>  pre> 
 
 

为什么 go工具pprof code>显示地址而不是函数名称? 来自 http://google-perftools.googlecode.com/svn/trunk/doc/cpuprofile.html or http://blog.golang.org/pr 结束程序 我们知道它必须是函数名。 p>

或者如何将字节信息更改为函数名? p> 操作系统:Mac OS 10.9.2
Go版本:go1.2 darwin / amd64 p> div>

The first argument to pprof must be a binary, not a source file.

So you must compile the binary:

$ go build -o ppears

and use it as the input to pprof:

$ go tool pprof pgears

go build -o bin // build the binary file

go tool pprof bin profilefile.prof