2008-08-08 36 views
-1

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

不幸的是,Purify发生故障,Purify不会跳到发生泄漏的地方,只会提及发生泄漏的类别和方法。不幸的是,有时这与雇佣指南来帮助您寻找熊有用并让他指向森林并告诉你那里有熊。

有谁使用Purify经验有任何想法如何我可能会解决这个问题,或者有很好的手册,虽然看?

回答

2

通常你有两个选择,一个排除在Purify中的模块DLL的工具,它有助于一些时间。其次是得到BoundsChecker,这确实编译时间仪器慢得多,但细节的水平更好一个数量级。

我们通常使用净化在办理入住手续,健全检查和的BoundsChecker当我们知道一个错误/崩溃存在。

的BoundsChecker有一些不错的功能只有仪器文件A.cpp & B.cpp,排除所有的休息。

注意既不在64位操作系统这两个应用程序的功能,并会的BoundsChecker不能在64位操作系统上安装。最让人沮丧的是,如果你使用32位后端口切换到本地64位开发!

1

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

整个代码是否正确检测?

还要考虑使用别的东西像free Visual Leak Detector或微软的工具LeakDiag。

1

大约5年前我使用了Purify。那真的很脆。他们一直承诺修复'下一个版本'中的所有错误。我们最终放弃了它。人们只能怀疑他们是否在自己的产品上使用了自己的质量保证工具。哦,讽刺的是...

2

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

最后你需要很多的耐心,重建和运气。

2

净化自带了一个叫做ScanVSSolutionForPurifyPlus.pl脚本将确保您的项目文件都正确设置净化才能正常工作。如果你还没有运行它,请给它一个。

(我已经亲自在一个大型解决方案上使用了ScanVSSolutionForPurifyPlus.pl,它的工作方式就像一个魅力一样,需要注意的是:当您给它指定.sln文件的名称时,可能需要给它一个完整的路径名。