Memory leaks 追踪内存泄漏的最佳方法是什么 一个巨大的C++ Builder 2010应用程序,它有几个DLL的构建和链接。什么是最好的方法来追踪长时间积累的内存泄漏?假设应用程序必须在目标计算机上运行一周或更长时间,然后才会成为问题。让我们假设没有像AQ Time或类似的分析应用程序可用。只需使用标准IDE和一些代码

Memory leaks 追踪内存泄漏的最佳方法是什么 一个巨大的C++ Builder 2010应用程序,它有几个DLL的构建和链接。什么是最好的方法来追踪长时间积累的内存泄漏?假设应用程序必须在目标计算机上运行一周或更长时间,然后才会成为问题。让我们假设没有像AQ Time或类似的分析应用程序可用。只需使用标准IDE和一些代码,memory-leaks,c++builder,vcl,Memory Leaks,C++builder,Vcl,我最初的想法是编写一个用于所有类的宏,该宏跟踪每种类类型的实例数量和使用的空间。RTL将其用作内存管理器。FastMM支持内存泄漏报告和跟踪。RTL中包含的FastMM的本机版本是一个精简版本,但它支持最小的泄漏报告。您可以在运行时将RTL的全局变量设置为true,当应用程序关闭时,FastMM将生成基本泄漏报告。要获得更高级的使用,您可以下载FastMM的完整版本并将其添加到您的应用程序中,这将取代RTL的本机版本。您可以根据需要配置FASTMM。Sub,听起来完全像我所想的那样,您有什么好的

我最初的想法是编写一个用于所有类的宏,该宏跟踪每种类类型的实例数量和使用的空间。

RTL将其用作内存管理器。FastMM支持内存泄漏报告和跟踪。RTL中包含的FastMM的本机版本是一个精简版本,但它支持最小的泄漏报告。您可以在运行时将RTL的全局变量设置为true,当应用程序关闭时,FastMM将生成基本泄漏报告。要获得更高级的使用,您可以下载FastMM的完整版本并将其添加到您的应用程序中,这将取代RTL的本机版本。您可以根据需要配置FASTMM。

Sub,听起来完全像我所想的那样,您有什么好的参考来说明如何替换C++应用程序的标准FASTMM?我找到了一些关于Delphi的信息,但没有什么关于C++的。在FASMMM SooSeFror网站上下载的“CPP Builder支持”子文件夹中的“FASMM4BC.CPP”文件中读取了文档。我做了所有这些(除了似乎不推荐的UnjObjo),它似乎为FASTMM构建了额外的文件。但它抱怨在启动应用程序时已经加载了另一个第三方内存管理器。我尝试将“Enable Codeguard”设置为false,如果这是导致它的原因,但没有任何更改。在分配任何内存之前,必须在运行时将FastMM安装为活动MM。确保在project Manager和/或project makefile中排列项目的源文件,以便首先编译FastMM源文件,在项目的主.cpp文件之后,但在任何其他源文件之前。您还需要确保 BCB < /C>在项目条件中定义,或者至少在<代码> FASTMM4Outs.Inc/Cuth>本身中,这样FastMM将用其额外的C++支持代码编译。