9

最近我一直在使用 QT Creator 进行 C++ 开发。一切都很好,我快要打包和分发我的应用程序了。但显然,在发布任何版本之前,您最好确保一切正常。所以我正处于测试阶段,有些东西告诉我我有一些轻微的记忆问题。没什么大不了的,但我喜欢沉迷于这些 ;-)。

所以我决定尝试一些内存泄漏检测库。首先,我看了这个问题。由于成本原因,我忽略了 Purify 和 Insure++。其他人建议使用 MSVC 编译器,这样我就可以使用 CRT 内存验证例程。我考虑过但现在决定反对,因为它会对使用 QT Creator 中的调试器产生影响。

然后我偶然发现了DUMA,我必须使用 QT 附带的 MinGW32 编译器进行编译。但是,我发现它与 QT 并不能很好地配合使用,因为存在大量的分段错误。我知道他们是 DUMA 的工作方式,但我很确定我没有像 DUMA 试图让我相信的那样把事情搞砸。

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

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

谢谢,

4

2 回答 2

6

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

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

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

于 2011-02-25T20:09:27.417 回答
0

也许您可以将这些库用于 Windows

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

于 2010-12-24T18:55:15.980 回答