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


当前回答

如果你不害怕mingw,这里有一些链接(一些可能适用于MSVC)… http://betterlogic.com/roger/?p=1140

其他回答

列表中的另一个内存工具:内存验证器。

不是免费的,但远没有Purify或Boundschecker那么贵。

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

请参阅软件QA测试和测试工具资源页面上的“源测试工具”链接,以获得类似工具的列表。

我曾经使用BoundsChecker,DevPartner Studio和Intel V-Tune进行分析。我最喜欢V-Tune;你可以模拟各种英特尔芯片组,它会给你关于如何优化该平台的提示。

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

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

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

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

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

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