Просмотр исходного кода в pprof с помощью bazel - PullRequest
0 голосов
/ 29 сентября 2019

Я пытаюсь профилировать двоичный файл, который я построил под Bazel, используя pprof. Я могу создать профиль, однако, когда я просматриваю его в веб-интерфейсе, я не вижу свой код в представлении исходного кода. Вместо этого я вижу ?? s.

Вот команды, которые я использую:

CPUPROFILE=/tmp/cpu_profile bazel run --linkopt='-lprofiler' //my:binary

pprof -http=localhost:8000 -lines bazel-bin/my/binary /tmp/cpu_profile

Как я могу получить информацию об исходном коде?

1 Ответ

0 голосов
/ 29 сентября 2019

По умолчанию bazel создает двоичные файлы, используя fastbuild compilation_mode , в котором нет всей необходимой отладочной информации, необходимой для ссылки на источник.

Чтобы исправить это, профилируйте с помощью dbg mode:

CPUPROFILE=/tmp/cpu_profile bazel run -c dbg \
  --linkopt='-lprofiler' \
  //my:binary

Или включить отладочную информацию в оптимизированную сборку:

CPUPROFILE=/tmp/cpu_profile bazel run -c opt \
  --copt=-g \
  --linkopt='-lprofiler' \
  //my:binary
...