2015-05-03 3 views
10

Я включил пакет net/http/pprof в свой код. Затем я могу удобно запустить pprof профилировщика (на Debian):Golang Профайлер не может найти код

go tool pprof http://localhost:9000/debug/pprof/profile 

команды, такие как top10 или даже порождающие графы вызовов работают как и ожидалось. Однако, как только я пытаюсь войти в функцию, она не:

(pprof) list MyFunc 
No source information for mypkg.MyFunc 

Мой GOPATH установлен в директории моего проекта. Нужны ли мне какие-либо специальные флаги или переменные среды при создании исходного кода или при запуске pprof?

+0

Можете добавить свой код – MIkCode

+0

Непонятно, что вы имеете в виду. Это мой вопрос. Как я могу сообщить 'pprof' о моем коде? – Oliver

ответ

17

Нашел ответ с помощью людей голанг-орехов. Мне нужно указать двоичный файл:

go tool pprof mybinary http://localhost:9000/debug/pprof/profile 

Таким образом, исходный код найден и может быть указана с помощью команды «список».

0

У меня была такая же проблема с "net/http/pprof", хотя и на окнах. Вместо этого, используя "runtime/pprof", с pprof.StartCPUProfile/StopCPUProfile решил.