在Windows上使用QT和MinGW32进行内存泄漏检查

9
最近我一直在使用QT Creator开发C++。一切顺利,我已经接近应用程序打包和发布的时候。但是很明显,在任何发布之前,你最好确保一切正确。所以我现在处于测试阶段,有些迹象表明我有一些轻微的内存问题。没什么大不了的,但我喜欢过度关注这些细节 ;-).
所以我决定尝试一些内存泄漏检测库。首先我看了这个this问题。我放弃了Purify和Insure ++,因为它们太贵了。有人建议我使用MSVC编译器,这样我就可以使用CRT内存验证例程。我考虑过,但暂时决定不这样做,因为这会给在QT Creator中使用调试器带来影响。
然后我偶然发现了DUMA,我使用QT附带的MinGW32编译器编译成功了。然而,我发现由于大量的分段错误,它与QT并不兼容。我知道这是DUMA工作的方式,但我相当确定我没有把事情搞砸到DUMA让我相信的那么糟糕。

我尝试了另一种工具谷歌性能工具,但是很遗憾我无法使用QT提供的MinGW32版本进行编译,即使我添加了所需的依赖项。

所有这些都带来了我的问题:是否有适用于QT Creator开发人员的可行解决方案,以检查其程序中的内存泄漏?

谢谢,

2个回答

6
我个人认为valgrind / memcheck / callgrind / kcachegrind 这一组合对于内存泄漏和性能分析来说太强大了,不容错过。它是免费的,特别适合我这样无法承担其他专业工具成本的人。
我已经在开发跨平台的Qt应用程序两年了。在测试功能和功能时,我会在Windows和Linux之间来回切换。然而,我总是在Linux上进行性能分析。我发现的内存泄漏和性能问题总是由我们的开发团队在Qt之上注入的。因此,即使在Linux中确定了这些问题,修复后也将在Windows中受益。

我建议你建立一个纯Linux构建环境来进行测试。也许对你来说最简单的解决方案是创建一个虚拟机来进行性能分析。我的首选组合是VirtualBoxUbuntu


谢谢你添加链接,Nick! - perden

0

也许你可以在Windows上使用这些库

内存分配钩子 [gnu.org] 回溯 [gnu.org] valgrind [valgrind.org]


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接