2009-11-11 45 views
1

我需要得到以下内容来分析内存泄漏问题。怎么做?如何创建内存转储并分析内存泄漏?

  • 孤儿块地址孤儿呼叫
  • 堆栈

是否有良好的资源/工具来了解/修复内存泄漏。

感谢

+2

Valgrind经常被提及用于分析和捕获内存泄漏。 – 2009-11-11 00:40:42

回答

6

如果你是在Linux上,使用valgrind。这是你最好的朋友。我不确定哪些工具可用于Windows。

0

是的,正如J. Paulett评论的那样,至少在Linux平台上Valgrind是一个很好的起点。

2

的valgrind --leak检查=全

1

在Windows中,您可以在dbghelp.dll使用MiniDumpWriteDump功能。

How to create minidump for my process when it crashes?

这可以在部署应用程序的跟踪误差,因为你可以用你的调试符号检查在现场没有调试信息做了一个小型转储非常有帮助。但是,跟踪内存泄漏并不是非常有用。

对于Windows下的内存泄漏(除了商业工具,如PurifyBoundsCheckerGlowCode,当然),您可以使用WinDbg从自由Debugging Tools for Windows封装,Win32堆标签一起追查内存泄漏的源头。

http://www.codeproject.com/KB/cpp/MemoryLeak.aspx

http://blogs.msdn.com/alikl/archive/2009/02/15/identifying-memory-leak-with-process-explorer-and-windbg.aspx