Файлы подавления утечек памяти Qt с помощью Valgrind

Я обычно пишу свои классы на C++ и проверяю, не утечка ли они памяти с помощью valgrind на платформе Linux. Я не удовлетворен, пока вся память кучи не будет освобождена.

начав писать в Qt, я обнаружил, сколько утечек обнаруживает valgrind, также в простом проекте. Их так много, что трудно обнаружить те же самые утечки.

Я где-то читал, что возможно использовать файлы подавления для valgrind, которые помогают отфильтровать нежелательные утечки, но я не могу найти он.

Я использую Ubuntu 11.04 x64, g++ 4.5, Qt 4.7. Кто-нибудь знает как справиться с этой проблемой?

3 ответов


ты этот" файл подавления Valgrind Howto " wiki?

просто для записи есть некоторые базовые библиотеки в Qt (особенно в процессе рисования), которые всегда пропускают небольшой объем памяти. Это то, что вам нужно подавить.

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


просто обратите внимание, что многие библиотеки имеют внутренние структуры распределения, которые вы никогда не достигнете, чтобы очистить, и это нормально.


Я просто использую файл подавления, чтобы подавить всю память, сообщенную из библиотеки Qt, следующим образом:

    {
        <QtCore>
        Memcheck:Leak
        ...
        obj:/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.6
    }

...