在一个巨大的 C ++ builder 2010 应用程序中,正在构建和链接多个DLL等。追踪长时间累积的内存泄漏的最佳方法是什么?假设应用程序必须在目标计算机上运行一周或某些事情才会成为问题。让我们假设没有可用的分析应用程序,如AQ Time或类似的东西。只需使用标准IDE和一些代码。
我最初的想法是在所有类中编写一个宏来跟踪每个类类型开始使用的实例数和空间。
答案 0 :(得分:2)
RTL使用FastMM作为内存管理器。 FastMM支持内存泄漏报告和跟踪。 RTL中包含的FastMM的本机版本是精简版本,但它确实支持最小的泄漏报告。您可以在运行时将RTL的全局ReportMemoryLeaksOnShutdown
变量设置为true,并且当应用程序关闭时,FastMM将生成基本泄漏报告。有关更高级的用法,您可以下载完整版的FastMM并将其添加到您的应用程序中,这将取代RTL的原生版本。然后,您可以根据需要配置FastMM。