最近我一直在使用QT Creator开发C语言.一切都很好,我几乎正在打包和分发我的应用程序.但显然在任何发布之前,你最好确保一切正确.所以我正处于测试阶段,有些东西告诉我,我有一些轻微的内存问题.没什么大不了的,但我喜欢这些; …).
所以我决定尝试一些内存泄漏检测库.对于初学者我看了this问题.由于成本原因,我无视Purify和Insure.其他人建议使用MSVC编译器,以便我可以使用CRT内存验证例程.我考虑过但现在决定反对,因为它会对在QT Creator中使用调试器产生影响.
然后我偶然发现了DUMA,我使用QT附带的MinGW32编译器进行编译.然而,我发现由于令人难以置信的分段错误,它在QT中并不能很好地发挥作用.我知道他们是DUMA的工作方式,但我很确定我没有像DUMA试图让我相信的那样搞砸了.
我尝试的另一件事是google-performance-tools,我很遗憾无法使用QT提供的MinGW32版本进行编译,即使我添加了所需的依赖项.
所有这些都让我想到了一个问题:QT Creator开发人员是否有任何可行的解决方案想要检查他们的程序是否存在内存泄漏?
谢谢,
解决方法:
就个人而言,我发现valgrind/memcheck/callgrind/kcachegrind组合功能太强大,无法用于内存泄漏和性能分析.免费(免费)特别好,因为我无法负担其他一些专业工具的费用.
我已经在跨平台的Qt应用程序上工作了几年.随着我的发展,当我想测试特性和功能时,我在windows和linux之间来回反弹.但是,我总是在linux中进行性能分析.我发现的内存泄漏和性能问题总是由我的开发团队在Qt之上注入的.因此,当这些问题得到解决时,无论是否在Linux中被识别出来,这些好处都将延续到Windows中.
我建议您研究设置一个可以测试的纯Linux构建环境.也许最简单的解决方案是创建一个虚拟机来进行性能分析.我的首选组合是VirtualBox和Ubuntu.