Файлы подавления утечек памяти в Qt с помощью Valgrind - PullRequest
7 голосов
/ 07 февраля 2012

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

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

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

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

Ответы [ 3 ]

6 голосов
/ 07 февраля 2012

Вы смотрели на это "Valgrind Suppression File Howto" вики ?

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

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

0 голосов
/ 08 января 2015

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

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

...
0 голосов
/ 07 февраля 2012

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

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