0

所以我的公司使用了一个令人愉快的错误程序,称为 Rational Purify(作为 Microsoft Visual Developer Studio 的插件)来管理内存泄漏。该程序旨在让您在遇到内存泄漏后单击它,然后跳转到发生泄漏的行。

不幸的是,Purify 出现故障,Purify 不会跳转到发生泄漏的地方,它只会提及发生泄漏的类和方法。不幸的是,有时这与雇用指南来帮助您狩猎熊并让他指出一样有用去森林告诉你那里有熊。

有 Purify 经验的人知道我该如何解决这个问题或有一本好的手册可以看吗?

4

5 回答 5

3

通常,您有两种选择,一种是从 Purify 的检测中排除模块 DLL,它有时会有所帮助。其次是获取 BoundsChecker,这确实编译时检测要慢得多,但详细程度要好一个数量级。

当我们知道存在错误/崩溃时,我们通常在签入、健全性检查和 BoundsChecker 上使用 Purify。

BoundsChecker 有一些不错的功能,比如只有仪器文件 A.cpp 和 B.cpp,不包括其他所有文件。

请注意,这两个应用程序都不能在 64 位操作系统上运行,并且 BoundsChecker 不会安装在 64 位操作系统上。如果您使用 32 位后端端口切换到本机 64 位开发,那将是最令人沮丧的!

于 2008-09-17T10:39:03.347 回答
3

净化就像一把瑞士刀。如果你知道如何使用它,你会得到一些结果,不是最好的,但仍然是结果。如果不这样做,它就会崩溃,因为它只是在 Windows 上运行的另一个程序。

最后,您将需要很大的耐心、重建和一点运气。

于 2008-10-22T16:47:30.767 回答
3

Purify 带有一个名为 ScanVSSolutionForPurifyPlus.pl 的脚本,它将确保您的项目文件具有所有正确的设置,以使 Purify 正常工作。如果您还没有运行它,请尝试一下。

(我个人在一个大型解决方案上使用过 ScanVSSolutionForPurifyPlus.pl,它的作用就像一个魅力。一个警告:当你给它你的.sln文件名时,你可能需要给它完整的路径名。)

于 2009-04-03T15:03:18.097 回答
2

你确定你有调试版本吗?或者更确切地说,您启用了所有 PDB?在您的可执行文件上尝试 WindDbg 并使用 !lmi 命令检查可见内容。

整个代码是否正确检测?

还可以考虑使用其他工具,例如免费的 Visual Leak Detector或 Microsoft 的工具 LeakDiag。

于 2008-08-08T13:56:40.487 回答
2

大约 5 年前,我使用了 Purify。那时候真的很牛逼。他们一直承诺修复“下一个版本”中的所有错误。我们最终放弃了它。人们只能想知道他们是否在他们的产品上使用了自己的 QA 工具。哦,讽刺...

于 2008-09-08T15:28:26.907 回答