Генерация подавлений для утечек памяти

Я хочу подавить сообщение Valgrind о "определенно потерянной" памяти библиотекой, которую я использую. я пытался valgrind --gen-suppressions=yes ./a но он запрашивает только ошибки, такие как "условный переход или перемещение зависит от неинициализированного значения".

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

4 ответа

Запустите Вальгринд с --gen-suppressions=all а также --log-file=memcheck.log параметры, и вручную скопируйте / вставьте зарегистрированные подавления в файл подавления.

valgrind --leak-check=full --gen-suppressions=all --log-file=memcheck.log ./a 

Если вы обнаружите, что вывод смешан с выводом приложения, перенаправьте вывод valigrind в отдельный дескриптор файла: --log-fd=9 9>>memcheck.log

valgrind --leak-check=full --gen-suppressions=all --log-fd=9 ./a  9>>memcheck.log

Чтобы получить запрос на утечки, которые не вызывают ошибок, вы должны запустить

valgrind --leak-check=full --gen-suppressions=yes ./a 

Существует страница о том, как вы можете создать такой файл на основе ваших ошибок https://wiki.wxwidgets.org/Valgrind_Suppression_File_Howto

Это не идеально, но вы можете начать с этого

Вы можете написать собственный файл подавления (но это не кажется очевидным):

--suppressions=<filename> [default: $PREFIX/lib/valgrind/default.supp]

Если вопрос заключался в отключении всей библиотеки, посмотрите это.

Справочная страница Вальгринда.

Другие вопросы по тегам