使用 bazel 构建的二进制文件查看 pprof 中的源代码
Viewing source code in pprof with bazel built binary
我正在尝试分析我使用 pprof
在 bazel 下构建的二进制文件。我能够生成一个配置文件,但是当我在 Web UI 中查看它时,我无法在源代码视图中看到我的代码。我看到的是 ??
s。
这是我正在使用的命令:
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 构建二进制文件,它没有 link 源所需的所有必要调试信息。
要解决此问题,请使用 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
我正在尝试分析我使用 pprof
在 bazel 下构建的二进制文件。我能够生成一个配置文件,但是当我在 Web UI 中查看它时,我无法在源代码视图中看到我的代码。我看到的是 ??
s。
这是我正在使用的命令:
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 构建二进制文件,它没有 link 源所需的所有必要调试信息。
要解决此问题,请使用 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