Suppression files for Qt memory leaks with Valgrind

独自空忆成欢 提交于 2019-11-27 06:50:10

问题


I usually write my classes in C++ and check if they leak memory using valgrind on Linux platform. I'm not satisfied until all the heap memory is freed.

Starting to write in Qt, I found how many leaks valgrind detects, also on a simple project. They are so many that it's difficult to detect my same leaks.

I read somewhere that is possibile to use a suppression files for valgrind which helps filtering out the unwanted leaks, but I can't find it.

I'm using Ubuntu 11.04 x64, g++ 4.5, Qt 4.7. Does somebody know how to cope with this problem?


回答1:


Did you look at this "Valgrind Suppression File Howto" wiki?

Just for the record there are some underlying libraries in Qt (especially the ones in the painting process) which always leak small amount of memory. These are the one you need to suppress.

As you said, you should first create a minimal project, run it to create a valgrind suppression file and then apply that suppression file to your project.




回答2:


Just pay attention that a lot of libraries have internal allocation structures that you'll never reach to clean up, and it's normal.




回答3:


I Just using suppression file to suppress all the memory reported from Qt library like this:

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

...


来源:https://stackoverflow.com/questions/9174326/suppression-files-for-qt-memory-leaks-with-valgrind

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!