什么是追踪内存泄漏的最佳方式
问题描述:
在一个巨大的C++ builder 2010应用程序中有多个DLL正在构建和链接等等。追踪长时间积累的内存泄漏的最佳方法是什么?假设应用程序必须在目标机器上运行一周或一段时间才能成为问题。我们假设没有可用的分析应用程序,例如AQ Time或类似的。只需使用标准的IDE和一些代码即可。什么是追踪内存泄漏的最佳方式
我最初的想法是编写一个宏,用于所有类,用于跟踪每个类类型的实例数量和空间使用情况。
答
RTL使用FastMM作为其内存管理器。 FastMM支持内存泄漏报告和跟踪。包含在RTL中的FastMM本地版本是一个精简版,但它支持最小的泄漏报告。您可以在运行时将RTL的全局ReportMemoryLeaksOnShutdown
变量设置为true,FastMM将在应用程序关闭时生成基本泄漏报告。对于更高级的用法,您可以下载FastMM的完整版本并将其添加到您的应用程序,该应用程序将取代RTL的本机版本。然后您可以根据需要配置FastMM。
超级,听起来和我想要的完全一样 – inquam 2013-03-06 08:30:42
关于如何替换C++应用程序的标准FastMM,你有什么好的参考吗?我找到关于Delphi的一些信息,但在C++上没有任何信息。 – inquam 2013-03-06 09:42:31
阅读可从FastMM SourceForge网站下载的源文件中的“CPP Builder支持”子文件夹中的“FastMM4BCB.cpp”文件中的文档。 – 2013-03-06 10:06:05