2009-11-11 38 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