我正在寻找Valgrind来帮助提高我的C编码/调试,当我发现它只适用于Linux时——我没有其他需要或兴趣将我的操作系统转移到Linux,所以我想知道是否有同样好的Windows程序。


当前回答

Viusual Studio本身可以帮助检测内存泄漏。参见Microsoft Visual c++技巧->“内存泄漏”部分。 参见《SO》中的这篇文章

虽然真正的跟踪只能与Visual Studio的团队版。

其他回答

所有分析器或多或少都包括检查内存泄漏,并在分配内存时显示堆栈。

我可以推荐英特尔并行检查器。使用简单,不需要重新编译。试运行期为30天。

GlowCode和AtromatedQA也包含这样的功能。他们都提供免费试用。

Compuware DevPartner(又名BoundsChecker)在对比中需要慢速的“仪器”重新编译,应用程序在检查错误时也会运行得更慢。和BoundsChecker不能工作与64位evsrions在所有。我们放弃了那个工具。

Boost Test库可以检测内存泄漏。

免费工具DebugDiag将帮助查找内存并处理内存泄漏。

为了使DebugDiag工作,您不需要对程序进行配置。

http://www.microsoft.com/downloads/details.aspx?FamilyID=28BD5941-C458-46F1-B24D-F60151D875A3&displaylang=en

虽然它不是最简单或最直观的程序使用!确保你谷歌的教程和说明如何使用它。

我曾经有机会使用Compuware DevPartner Studio,那真的很好,但它相当昂贵。 一个更便宜的解决方案可以是GlowCode,我刚刚与一个5。X版本,尽管在附加到我需要调试的进程时出现了一些问题,但它运行得很好。

我使用了Insure++,它在查找c++内存泄漏/损坏和许多其他错误,如未初始化的变量,指针错误,字符串等方面做得很好,它还做了可视化的“代码覆盖”和运行时内存使用等。这让你对你的代码更有信心。你可以尝试一下试用版。