2013-03-05 90 views
3

在一個巨大的C++ builder 2010應用程序中有多個DLL正在構建和鏈接等等。追蹤長時間積累的內存泄漏的最佳方法是什麼?假設應用程序必須在目標機器上運行一週或一段時間才能成爲問題。我們假設沒有可用的分析應用程序,例如AQ Time或類似的。只需使用標準的IDE和一些代碼即可。什麼是追蹤內存泄漏的最佳方式

我最初的想法是編寫一個宏,用於所有類,用於跟蹤每個類類型的實例數量和空間使用情況。

回答

2

RTL使用FastMM作爲其內存管理器。 FastMM支持內存泄漏報告和跟蹤。包含在RTL中的FastMM本地版本是一個精簡版,但它支持最小的泄漏報告。您可以在運行時將RTL的全局ReportMemoryLeaksOnShutdown變量設置爲true,FastMM將在應用程序關閉時生成基本泄漏報告。對於更高級的用法,您可以下載FastMM的完整版本並將其添加到您的應用程序,該應用程序將取代RTL的本機版本。然後您可以根據需要配置FastMM。

+0

超級,聽起來和我想要的完全一樣 – inquam 2013-03-06 08:30:42

+0

關於如何替換C++應用程序的標準FastMM,你有什麼好的參考嗎?我找到關於Delphi的一些信息,但在C++上沒有任何信息。 – inquam 2013-03-06 09:42:31

+0

閱讀可從FastMM SourceForge網站下載的源文件中的「CPP Builder支持」子文件夾中的「FastMM4BCB.cpp」文件中的文檔。 – 2013-03-06 10:06:05

相關問題