Suppression files for Qt memory leaks with Valgrind(使用 Valgrind 抑制 Qt 内存泄漏的文件)
问题描述
我通常用 C++ 编写我的类,并在 Linux 平台上使用 valgrind 检查它们是否泄漏内存.直到所有堆内存都被释放,我才满意.
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.
开始用 Qt 编写,我发现 valgrind 检测到多少泄漏,也是在一个简单的项目中.它们太多了,很难检测到我的相同泄漏.
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.
我在某处读到可以使用 valgrind 的抑制文件,这有助于过滤掉不需要的泄漏,但我找不到它.
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.
我使用的是 Ubuntu 11.04 x64、g++ 4.5、Qt 4.7.有人知道如何处理这个问题吗?
I'm using Ubuntu 11.04 x64, g++ 4.5, Qt 4.7. Does somebody know how to cope with this problem?
推荐答案
您是否查看了这个Valgrind Suppression File Howto"维基?
只是为了记录,Qt中有一些底层库(尤其是绘制过程中的库)总是泄漏少量内存.这些是您需要压制的.
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.
如您所说,您应该首先创建一个最小项目,运行它以创建一个 valgrind 抑制文件,然后将该抑制文件应用于您的项目.
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.
这篇关于使用 Valgrind 抑制 Qt 内存泄漏的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用 Valgrind 抑制 Qt 内存泄漏的文件


基础教程推荐
- 如果我为无符号变量分配负值会发生什么? 2022-01-01
- CString 到 char* 2021-01-01
- 通过引用传递 C++ 迭代器有什么问题? 2022-01-01
- 为什么 RegOpenKeyEx() 在 Vista 64 位上返回错误代码 2021-01-01
- 我应该对 C++ 中的成员变量和函数参数使用相同的名称吗? 2021-01-01
- 非静态 const 成员,不能使用默认赋值运算符 2022-10-09
- 初始化列表*参数*评估顺序 2021-01-01
- 为什么派生模板类不能访问基模板类的标识符? 2021-01-01
- 为什么 typeid.name() 使用 GCC 返回奇怪的字符以及如 2022-09-16
- GDB 显示调用堆栈上函数地址的当前编译二进制文 2022-09-05