简体   繁体   中英

Why does `go tool pprof` show addresses instead of function names?

$ 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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM