在具有多个正在构建和链接的DLL的大型C++ Builder 2010应用程序中,什么是追踪长时间积累的内存泄漏的最佳方法?假设应用程序在成为问题之前必须在目标计算机上运行一周或其他时间。假设没有像AQ Time之类的可用的分析应用程序。仅使用标准的IDE或一些代码。
我最初的想法是编写一个可在所有类中使用的宏,该宏可跟踪每种类类型开始使用的实例数和空间。
最佳答案
RTL使用FastMM作为其内存管理器。 FastMM支持内存泄漏报告和跟踪。 RTL中包含的FastMM的本机版本是精简版本,但它确实支持最少的泄漏报告。您可以在运行时将RTL的全局 ReportMemoryLeaksOnShutdown
变量设置为true,并且当应用关闭时,FastMM将生成基本的泄漏报告。要获得更高级的用法,您可以下载完整版本的FastMM并将其添加到您的应用中,它将替代RTL的本机版本。然后,您可以根据需要配置FastMM。