Valgrind的Qt内存泄漏抑制文件

Suppression files for Qt memory leaks with Valgrind

本文关键字:文件 泄漏 内存 Qt Valgrind      更新时间:2023-10-16

我通常用C++编写类,并在Linux平台上使用valgrind检查它们是否泄漏内存。直到所有堆内存都释放出来,我才满意。

开始在Qt中写作时,我发现valgrind在一个简单的项目中检测到了多少泄漏。它们太多了,很难检测到我的泄漏。

我在某个地方读到了可以使用valgrind的抑制文件,这有助于过滤掉不需要的泄漏,但我找不到。

我使用的是Ubuntu 11.04 x64,g++4.5,Qt 4.7。有人知道如何处理这个问题吗?

你看过这个"Valgrind Suppression File Howto"维基吗?

为了记录在案,Qt中有一些底层库(尤其是绘画过程中的库)总是会泄漏少量内存。这些是你需要抑制的。

正如您所说,您应该首先创建一个最小的项目,运行它来创建一个valgrind抑制文件,然后将该抑制文件应用于您的项目。

请注意,许多库都有内部分配结构,您永远无法清理这些结构,这很正常。

I只是使用抑制文件来抑制Qt库中报告的所有内存,如下所示:

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