2014-03-05 8 views
1
$ 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) 

go tool pprof이 기능 이름 대신 주소를 표시합니까? http://google-perftools.googlecode.com/svn/trunk/doc/cpuprofile.html 또는 http://blog.golang.org/profiling-go-programs 함수 이름이어야합니다.`go tool pprof`는 함수 이름 대신 주소를 표시합니까?

또는 어떻게 바이트 정보를 함수 이름으로 변경할 수 있습니까?

운영 체제 : Mac OS 10.9.2
이동 버전 : go1.2 다윈/AMD64가

+0

,하지만 난 생각 ' addr2line : crackhdr : 알 수없는 헤더 유형'line이 문제의 근원입니다. – Kavu

+1

참고 사항 : [go-nuts 토론] (https://groups.google.com/d/msg/golang-nuts/X3ZZsEXHA_o/CWfjlEphwZEJ). – kostix

답변

7

pprof의 첫 번째 인수가 이 아닌 소스 파일이어야합니다.

그래서 당신은 바이너리 컴파일해야합니다

$ go build -o ppears 

pprof의 입력으로 사용 : 전에 같은 문제에 직면하지 않았다

$ go tool pprof pgears 
+0

바이너리를 얻으려면 어떻게해야합니까? – lincolnge

+0

@lincoln 소스 파일을 컴파일합니다 :'$ go build -o pgears.go' :) – Agis

1
go build -o bin // build the binary file 

go tool pprof bin profilefile.prof