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


当前回答

只是一个想法,您还可以实现一个内存分配器,并跟踪所有对malloc和free的调用。然而,这对于某些项目来说可能太多了。

其他回答

我用过的最好的工具是DevPartner BoundsChecker——它不是免费的,但它有一个评估期。

Windows的调试工具中有Pageheap.exe部分。它是免费的,基本上是一个自定义的内存分配器/释放器。

参见http://support.microsoft.com/kb/286470

我想列举一些工具,希望对大家有用

阅读这篇文章了解更多细节

净化 边界检查 Coverity(基本上它是一个代码分析器,但它会捕捉静态内存泄漏) 发光的代码 dmalloc ccmalloc NJAMD YAMD Valgrind mpatrol 确保+ +

为什么不用Valgrind + Wine来调试你的Windows应用程序呢?看到 http://wiki.winehq.org/Wine_and_Valgrind

(Chromium使用这个来检查Windows版本的内存错误;看到 build.chromium.org 看看实验瀑布或记忆瀑布,寻找葡萄酒。)

还有记忆博士 dynamorio.org/drmemory.html

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

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

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

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