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


当前回答

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

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

其他回答

您可以尝试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的团队版。

您正在使用的Windows开发环境可能包含自己的工具。例如,Visual Studio允许您检测和隔离程序中的内存泄漏

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

试试Intel的Inspector XE产品,它可以帮助您检测内存和线程问题:http://software.intel.com/en-us/articles/intel-inspector-xe/