Как перенаправить вывод Valgrind в файл?

Во время работы с инструментом Valgrind мне нужно записать данные, созданные инструментом valgrind. Как я могу это сделать? Я попробовал что-то вроде,

 valgrind a.out | test

а также

 valgrind a.out > test

Он дал только выход программы, а не ошибку памяти valgrind, информацию о утечке. Даже я получаю, как это, если программа не требует взаимодействия с пользователем (т.е. ввода ввода). Если программе требуется ввод пользователя, даже сама эта вещь не будет работать.

Как я могу это сделать?

Ответ 1

valgrind --log-file="filename"

Ответ 2

По умолчанию Valgrind записывает свой вывод в stderr. Поэтому вам нужно сделать что-то вроде:

valgrind a.out > log.txt 2>&1

В качестве альтернативы, вы можете сказать Valgrind, чтобы написать где-то в другом месте; см. http://valgrind.org/docs/manual/manual-core.html#manual-core.comment (но я никогда не пробовал это).

Ответ 3

Вы также можете установить параметры --log-fd, если вы просто хотите читать свои журналы с меньшим количеством. Например:

valgrind --log-fd=1 ls | less