Выходной каталог по умолчанию для целей запуска bazel - поиск файла valgrind callgrind.out - PullRequest
0 голосов
/ 14 мая 2019

При использовании команды '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' записывается в текущий каталог, но я нигде не могу его найти.

1 Ответ

0 голосов
/ 14 мая 2019

Вывод, который вы даете выше, кажется неполным. Вывод Callgrind завершается, например, от захваченных событий.

В любом случае, вы можете контролировать, где callgrind создает получившиеся файлы, используя параметр:

 --callgrind-out-file=<f>  Output file name [callgrind.out.%p]

Указанное имя файла может начинаться с имени каталога. Не забудьте использовать% p, если будет запущено несколько процессов (а также использовать --trace-children = yes в таких случаях).

...