Как попасть в script, обнаружено ли у вальгринда утечки памяти?

Я запускаю valgrind в bash script и направляю вывод valgrind в файл. Вот так:

valgrind --leak-check=full --show-reachable=yes --xml=yes --xml-file=unit_tests_valgrind.out.xml ./unit_tests_runner

RET_VALUE=$? собирается поставить возвращаемое значение программы (unit_tests_runner выше), а не valgrind. И единственный способ проверить, обнаружен ли valgrind проблемы с памятью, - открыть журнал.

Есть ли способ проверить в script проблемы с памятью? Если да, то как?

Ответы

Ответ 1

Кажется, вы ищете опцию --error-exitcode.

Поскольку он по умолчанию равен 0, код возврата от Valgrind такой же, как и для процесса. Установите вместо него ненулевое значение.

Из Руководство пользователя Valgrind:

--error-exitcode=<number> [default: 0]

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