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


当前回答

如果你使用Borland/CodeGear/Embarcadero c++ Builder进行开发,你可以使用CodeGuard。

其他回答

您可以尝试RuntimeChecker试用版或者IBM Purify试用版。

一个免费的解决方案是在Visual Studio中使用以下代码:

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

只要把这个写在所有cpp文件的顶部。 这将在停止调试运行时检测应用程序的内存泄漏,并在输出窗口中列出它们。双击内存泄漏行将突出显示已分配内存且从未释放内存的行。这可能对你有帮助:http://www.flipcode.com/archives/How_To_Find_Memory_Leaks.shtml

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

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

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

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

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

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

也许CodeSnitch是你想要的?http://www.entrek.com/codesnitch.html

LeakDiag, UMDH, App Verifier, DebugDiag都是提高代码健壮性和发现内存泄漏的有用工具。