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

时间:2010-12-24 16:32:34

标签: c++ qt heap mingw32

最近我一直在使用QT Creator开发C ++。一切都很好,我几乎正在打包和分发我的应用程序。但显然在任何发布之前,你最好确保一切正确。所以我正处于测试阶段,有些东西告诉我,我有一些轻微的内存问题。没什么大不了的,但我喜欢对这些感到困惑; - )。

所以我决定尝试一些内存泄漏检测库。对于初学者,我查看了this问题。由于费用原因,我无视Purify和Insure ++。其他人建议使用MSVC编译器,以便我可以使用CRT内存验证例程。我考虑过但现在决定反对,因为它会对在QT Creator中使用调试器产生影响。

然后我偶然发现DUMA我使用QT附带的MinGW32编译器进行编译。然而,我发现由于令人难以置信的分段错误,它在QT中并不能很好地发挥作用。我知道他们是DUMA的工作方式,但我很确定我并没有像DUMA那样让事情变得让我相信。

我尝试的另一件事是google-performance-tools,我很遗憾无法使用QT提供的MinGW32版本进行编译,即使我添加了所需的依赖项。

所有这些让我想到了一个问题:QT Creator开发人员是否有任何可行的解决方案想要检查他们的程序是否存在内存泄漏?

谢谢,

2 个答案:

答案 0 :(得分:6)

就我个人而言,我发现valgrind / memcheck / callgrind / kcachegrind组合太强大,无法通过内存泄漏和性能分析。免费(免费)特别好,因为我无法负担其他一些专业工具的费用。

我已经在跨平台的Qt应用程序上工作了几年了。随着我的发展,当我想测试特性和功能时,我在windows和linux之间来回反弹。但是,我总是在linux中进行性能分析。我发现的内存泄漏和性能问题总是由我的开发团队在Qt之上注入的。因此,当这些问题得到解决时,无论是否在Linux中被识别出来,这些好处都会延续到Windows中。

我建议您研究设置一个可以测试的纯Linux构建环境。也许最简单的解决方案是创建一个虚拟机来进行性能分析。我首选的组合是VirtualBoxUbuntu

答案 1 :(得分:0)

可能你可以将这些lib用于windows

Malloc的钩子[gnu.org] Backtrace [gnu.org] valgrind [valgrind.org]

相关问题