2010-02-21 28 views
1

我已经知道我可以在Linux上跟踪mtracevalgrind的代码中的内存泄漏,这两者都不适用于Windows。你会推荐哪个Windows程序来跟踪内存泄漏?在Windows上的C代码中查找内存泄漏

我是Eclipse用户,现在我一直在用C工作一两个月,所以我比较高级的更喜欢用户友好的解决方案。

回答

3

应用程序验证将做到这一点相当不错,http://msdn.microsoft.com/en-us/library/ms220948.aspx

+0

+1。好建议。 – 2010-02-21 19:23:29

+0

由于我对C mtrace的有限知识可能会说我做了x个malloc和x个释放量,但我对Application Verifier感到非常困惑,但Application Verifier似乎做了太高级的事情让我无法理解。 – Pieter 2010-02-21 20:13:17

+0

AppVerifier尝试模拟在最差情况下运行的应用程序,然后在出现任何问题时切入调试程序。其中一件事情就是泄漏,它会自动记录是谁分配的。 – 2010-02-21 21:53:33

0

还有就是,这样做,在C线每对malloc的常识方式有一个free,如果没有有泄漏,也同为GlobalAllocVirtualAllocHeapAllocLocalAllocVirtualAllocEx ...有关联的...Free对他们,例如上运行变量“富”一个HeapAlloc例如,并且没有HeapFree为“富”,这是一个泄漏...

希望这帮助, 最好的问候, 汤姆。

+0

这是不是因为我在循环中调用这些统计在我的代码的'malloc'和'free'呼叫的数量更加复杂。 – Pieter 2010-02-21 17:20:09

+0

如果您想手动执行操作,您可以创建'malloc'和'free'的包装来计算分配和释放。这种方法将简化跟踪并避开循环情况。 – jgottula 2010-02-21 18:23:51