Как объединить отчеты Valgrind memcheck из нескольких прогонов одного и того же процесса? - PullRequest
4 голосов
/ 25 июня 2010

У меня есть набор приемочных тестов, которые проводятся каждую ночь.Я хотел бы использовать valgrind для автоматической проверки утечек памяти в моем коде в качестве дополнительного средства защиты от ручной проверки на утечки.Обновление моих сценариев для запуска моих процессов в valgrind является тривиальным, однако каждый тест запускает и останавливает несколько процессов, и существует около 15000 тестовых случаев, поэтому я получу тысячи отдельных отчетов.

Существует ли инструмент, способный объединить эти отчеты?Я видел valkyrie, но, согласно документам, они не поддерживают valgrind 3.5

Ответы [ 3 ]

1 голос
/ 25 июня 2010

Если ваш код в основном чистый, то вы можете просто сохранить случаи ошибок.

Если вы собираетесь использовать инструмент для объединения выходных данных, тогда выходной формат valgrind xml может быть правильным для начала.с.По крайней мере, тогда разбор не должен быть слишком сложным.Вы также можете вывести журнал valgrind в другой файл, чтобы отделить его от выходных данных программ.Также вы можете заставить valgrind выдавать ошибку при обнаружении утечки памяти с помощью --error-exitcode=.

При сравнении утечек вам все равно придется решить, что считать той же утечкой памяти.

0 голосов
/ 10 января 2017

Более новые версии Valkyrie (GUI-компаньон Valgrind) имеют то, что вы ищете.

$ man valkyrie
NAME
   valkyrie - graphical front-end to the Valgrind suite of tools for debugging and profiling Linux executables

SYNOPSIS
   valkyrie [valkyrie-opts] [valgrind-opts] [prog-and-args]

<snip> 
   --merge <loglist>
          Merge multiple logfiles, discarding duplicate errors

Существует также вариант только для CLI, который называется vk_logmerge.Он доступен в пакете valkyrie, если вы используете Ubuntu.

0 голосов
/ 22 июля 2010

Способ решения вашей проблемы должен состоять в том, чтобы добавить опцию --gen-suppressions=all и объединить все игнорируемые ошибки в ваших файлах подавлений . Вы должны отсортировать истинные утечки и ложные утечки вручную, но как только это будет сделано, valgrind напечатает только истинные утечки.

Тогда, если в отчетах написано что-либо, возможно, вам придется устранить утечки памяти, прежде чем продолжить.

--quiet необходим параметр: Запускать без вывода сообщений и печатать только сообщения об ошибках. Полезно, если вы проводите регрессионные тесты или у вас есть другое автоматизированное тестовое оборудование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...