Мне не удалось создать приложение Qt GUI, в котором не было более 1 тыс. байтов с определенными потерями в valgrind. Я экспериментировал с этим, создавая минимальные приложения, которые показывают только один QWidget, расширяющий QMainWindow; которые просто создают объект QApplication, не показывая его или не выполняя его или оба, но они всегда течет.
Пытаясь понять это, я прочитал, что это потому, что у X11 или glibc есть ошибки, или потому что valgrind дает ложные срабатывания. И в одной теме форума, казалось, подразумевалось, что создание объекта QApplication в основной функции и возврат объекта exec() - функция, как это делается в учебниках, - это "упрощенный" способ создания GUI (и не обязательно хороших, возможно?).
Выход valgrind действительно упоминает libX11 и libglibc, а также libfontconfig. Остальные потери памяти, 5 записей потерь, происходят при ??? in libQtCore.so
во время QLibrary::setFileNameAndVersion
.
Если существует более подходящий способ создания приложений с графическим интерфейсом, который предотвращает даже некоторые из этих событий, что это такое? И если какой-либо выход valgrind является просто шумом, как создать файл подавления, который подавляет правильные вещи?
EDIT: Спасибо за комментарии и ответы!
Я не беспокоюсь о немногих потерянных kB, но легче будет найти свои собственные утечки памяти, если мне не придется фильтровать несколько экранов ошибок, но обычно можно получить "OK" от valgrind. И если я собираюсь подавить предупреждения, я лучше знаю, что это такое, верно?
Интересно видеть, насколько приемлемыми могут быть утечки!