При использовании команды 'bazel run' для построения и выполнения цели, аргумент '--run_under =' может использоваться для добавления префикса выполнения к valgrind.Valgrind обычно выводит свой файл результатов в каталог цели, но при запуске с использованием bazel, выходной файл нигде не будет найден.
Пример:
bazel run //path/to/package:target_name --copt="-g" --run_under='valgrind --tool=callgrind'
будет запускать callgrind примоя цель:
INFO: Build completed successfully, 1 total action
INFO: Running command line: /bin/bash -c 'valgrind --tool=callgrind /home/user/.cache/bazel/_bazel_user/8d1c200e573b8da3ee18c97f4656aca6/execroot/workspace/bazel-out/k8-opt/bin/path/to/package/s
INFO: Build completed successfully, 1 total action
==15166== Callgrind, a call-graph generating cache profiler
==15166== Copyright (C) 2002-2017, and GNU GPL'd, by Josef Weidendorfer et al.
==15166== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==15166== Command: /home/user/.cache/bazel/_bazel_user/8d1c200e573b8da3ee18c97f4656aca6/execroot/workspace/bazel-out/k8-opt/bin/path/to/package/target_name
... (further output omitted) ...
Обычно файл 'callgrind.out' записывается в текущий каталог, но я нигде не могу его найти.