Windows的良好内存分析,泄漏和错误检测

时间:2009-06-05 17:55:21

标签: debugging memory-leaks profiling bounds-checker

我目前正在为Windows寻找一个好的内存/泄漏检测工具。几年前,我使用了Numega的Boundschecker,这非常好。现在它似乎已经存在 卖给了Compuware,显然它再次卖给了其他公司。

到目前为止,试图评估当前版本的演示非常令人沮丧,采用最好的“企业家”传统:

(a)其网站上没有广告价格(警告大红灯闪烁);
(b)要求提供雇主人数和其他私人信息的联系表格;
(c)没有回复我要求评估和价格的电子邮件。

我必须得出结论,BoundsChecker现在是“那些”产品之一。你知道,你天真地打电话的类型,明天穿着黑色西装的3个男人出现在你的身上 希望与你讨论“伙伴关系”,而不是秘密地衡量你公司的规模,以及因此向你收取多少费用。

除此之外,任何人都可以推荐一款出色的内存检查/泄漏检测工具,成本是多少以及购买地点的建议?

5 个答案:

答案 0 :(得分:5)

您可以尝试Memory Validator。您也可以尝试相同的评估副本。

Licensed version prices

答案 1 :(得分:3)

谨防Compuware的边界检查: 它稳定到一定程度。它的成本约为3600美元,每年维持的数量相等。 但那是花生与Coverity相比。 在过去的3年里,我没有在Bounds Checker下进行过良好的测试。这就是为什么我不再使用它了,为什么我不建议你使用它,除了小型的小项目。在大型企业应用程序上,它太慢,占用太多内存,只是停止工作。我的意思是,您是否希望您的应用程序需要5分钟才能启动?您希望测试执行时间延长3倍吗?最糟糕的是,它是否会被锁定。 Compuware的客户支持非常有限。但是边界检查员被卖给另一家公司(不记得他们的名字),这些公司的网站是如此讽刺,消毒和干燥,这使得金融公司的网站看起来很有趣。 但是BoundsChecker的杀手级问题是它只有32位。因此,如果您需要分析占用大量内存(超过1 Gig)的大型应用程序,那么您就是运气不好。 Bounds Checker会从您的应用程序中消耗2到3 Gig的内存。对于32位应用程序,您很清楚4 Gigs是您获得的顶级应用程序。

如果你雇用一个人来照顾孩子,那么保险是很好的。严重的Coverity比我的房子花费更多。那更不用说我的公司雇佣的那些人来照看这个当事人。这需要24小时才能实现。并且它不仅仅是在警告级别4编译代码并打开“代码分析”(在Visual studio中),而不是那么多神奇。

我尝试过其他内存泄漏工具(用于本机代码)。他们所有的SUCK都很大,太复杂了,或者只是简单的老锁定了系统。 我对内存分析器的整个领域非常厌恶,我只想回到使用调试CRT。那或者只写我自己的。

至于代码覆盖工具,Bullseye获胜。为什么内存泄漏检测器不能像靶心一样稳固地工作?

答案 2 :(得分:2)

Microsoft的Application Verifier工具非常擅长检测泄漏以及Windows上的许多其他常见编程错误(COM,堆,TLS,锁等)。

它在分析方式上没有那么多,但是它会给你一个堆栈,当你泄漏它时分配内存的地方,或者如果你双倍释放它的第一次被释放的堆栈等等。

答案 3 :(得分:2)

我对AQTime非常满意,定价很难被击败(非常透明 - 每位用户599美元)。

分配探查器工作得相当好 - 它不像Boundschecker那样复杂(从我记得的Boundschecker),但它的功能,它做得很好 - 它也处理了很多其他的事情。

答案 4 :(得分:1)

这个帖子已经过时了。确实,我们无法说服Micro Focus在其主要网站上发布价格,但您可以在ComponentSource上获得价格,而且我们不会发送深色西装和色调的代理商8- /定价取决于无论您是要求单个用户还是多个用户许可,以及是否只需要BoundsChecker,或者您想要所有DevPartner Studio。有关详细信息,请参阅ComponentSource Listing

无论如何,我们还没有停止使用该产品。在2月4日,我们发布了10.5版本,它最终支持Vista和Windows 7上的64位应用程序(AMD64,Intel64,而不是Itanium)。在此过程中修复了一些旧的错误。下一次更新将包括对XP64和Windows 7 SP1以及Visual Studio 2010 SP1的支持。