使用 bazel 构建的二进制文件在 pprof 中查看源代码

Viewing source code in pprof with bazel built binary

本文关键字:pprof 查看源代码 二进制文件 bazel 构建 使用      更新时间:2023-10-16

我正在尝试使用pprof分析我在 bazel 下构建的二进制文件。我可以生成配置文件,但是当我在 Web UI 中查看它时,我无法在源代码视图中看到我的代码。我看到的是??

以下是我正在使用的命令:

CPUPROFILE=/tmp/cpu_profile bazel run --linkopt='-lprofiler' //my:binary
pprof -http=localhost:8000 -lines bazel-bin/my/binary /tmp/cpu_profile

如何访问源代码信息?

默认情况下,bazel 使用 fastbuild compilation_mode构建二进制文件,该没有链接源代码所需的所有必要调试信息。

要解决此问题,请使用dbg模式进行配置文件:

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