任何人都知道可以使用VS2010代码的探查器和检漏仪吗?最好是在Win7上运行的。
我在这里和谷歌搜索过。我找到了一个可以工作的检漏仪(Memory Validator),但我并没有太深刻的印象。首先,它显示了一堆菜单泄漏和我相当自信的东西并不真实。我也尝试过GlowCode,但它只是一个分析器而且拒绝在win7上安装。
我曾经使用过AQtime。它拥有我需要的一切,内存/资源泄漏检测,各种事物的分析,静态分析等。不幸的是,它现在给出了伪造的结果。
我的主要直接问题是VS2010说在VS2005中没有程序泄漏。我几乎肯定这是误报,但我似乎无法找到一个好的工具来验证这一点。 Memory Validator没有显示相同的内容,并且VS的泄漏报告似乎不合理。
答案 0 :(得分:3)
要查找内存泄漏,您可以尝试Visual Leak Detection工具。
答案 1 :(得分:3)
Noah,正如Ori所说,Micro Focus的DevPartner Studio同时具有泄漏检测和其他运行时分析功能。与DPS在Compuware下的高价不同,您现在可以仅许可运行时分析器,而不是整个套件,如果这是您需要的。无耻的插件:我在DevPartner团队工作。我们的64位应用程序支持在2011年2月4日的10.5版本中发布。在http://www.DevPartner.com上查找发布新闻和评估下载。
答案 2 :(得分:1)
就个人而言,我很喜欢DevPartner。如果你在一家大公司工作,也许你可以说服他们支付高昂的执照。它价格昂贵,但非常坚固。
答案 3 :(得分:0)
我使用了几种商业替代方案,虽然它们可以提供出色的结果,但由于未知原因,它们通常也无法正常工作:
在过去的几年里,我回到了相当粗略的方式来抽样应用程序。这不如使用仪器那么完美,但它更快,可以在任何应用程序上运行并始终有效。我最喜欢的是“非常困”(http://www.codersnotes.com/sleepy)但是Luke StackWalker(http://lukestackwalker.sourceforge.net/)非常好。由于应用程序可以立即运行而且没有明显的减速,因此“更改应用程序,配置文件”循环非常短且有效。
要查找内存泄漏,Windows中可以使用多种工具。同样,它们远非完美,通常只能从外部调查运行的应用程序,而不仅仅是在应用程序结束时报告泄漏。查找“Microsoft调试工具”(UMDH,LeakDiag,gflags)。就个人而言,我发现编写自己的内存管理器要简单得多,并让它在应用程序结束时报告泄漏。写起来并不难。你要做的是:
答案 4 :(得分:0)
这里也非常简单易用的泄漏检测代码:http://www.codeproject.com/kb/cpp/MemLeakDetect.aspx
答案 5 :(得分:0)
不确定如何链接到此,我之前发布以回应类似的问题:
您可以使用umdh.exe捕获并比较泄漏发生前后的进程快照。这对于Debug二进制文件最有效,但是可以正确设置Release提供的符号路径 - 它将为您提供在第一个和第二个快照之间分配的内存的调用堆栈。
http://support.microsoft.com/kb/268343
这种方法具有免费的优势。