Можно ли игнорировать стандартный вывод программы во время работы valgrind? - PullRequest
0 голосов
/ 07 января 2019

Я использую следующую команду для запуска valgrind. Но вывод ./main будет смешан с выводом valgrind. Я хочу сохранить вывод valgrind на стандартный вывод. Есть ли способ игнорировать стандартный вывод ./main? Спасибо.

valgrind --tool=callgrind --dump-instr=yes --collect-jumps=yes --callgrind-out-file=/dev/stdout ./main

1 Ответ

0 голосов
/ 07 января 2019

Вы можете использовать /proc/$$/fd/1 для обращения к исходному стандартному выводу в вызывающей оболочке, до перенаправления, например:

valgrind --tool=callgrind --callgrind-out-file=/proc/$$/fd/1 /bin/echo foo > /dev/null

Если система не поддерживает /proc/$$/fd, но имеет /dev/fd (для текущего процесса), это может сработать (в скрипте с использованием bash):

exec {old_stdout}>&1
valgrind --tool=callgrind --callgrind-out-file=/dev/fd/$old_stdout /bin/echo foo > /dev/null
...