【发布时间】:2011-01-07 16:25:19
【问题描述】:
我有一个空项目(它只包含一个表单)。如果我将此行添加到项目'USES GR32_Image;'并运行应用程序,FastMM 在程序中显示泄漏。 FastMM 设置为完全调试。我的程序中没有代码 - 除了 Delphi IDE 生成的代码和“使用 gr32”行。
报告毫无意义。
这是完整的日志:http://pastebin.com/Yhev3rJ2
这里是源代码:http://pastebin.com/VjRrRiS8
我以前使用过 Graphics32 单元,从来没有遇到过问题。为什么我有这个泄漏以及为什么 FastMM 无法生成正确的报告?
【问题讨论】:
-
您能否发布您的代码以便我们提供帮助。您应该能够将一些东西放在一个会出现问题的单个 .dpr 文件中。
-
@Altar 为什么没有在堆栈跟踪中获取函数名称?我认为您需要正确配置 FastMM。另外,我刚刚想到这些内存泄漏可能是 VCL 的预期泄漏。
-
@David:看起来 FullDebugMode 已打开并且 FastMM 配置正确,但它没有映射文件来查找地址。如果他让链接器生成详细的地图文件,事情就会变得更加清晰。
-
只是将您正在谈论的文件添加到项目中不会导致内存泄漏。至少没有使用最新版本,我下载并尝试了它。你确定是 Graphics32 造成的吗?是的,TFunctionRegistry 是 Graphics32 的一部分,但这可能只是意味着您的代码正在泄漏。 GR32_Image 中没有初始化部分。请按照 Mason 的建议做,Project Options->Linker->Map File Details (BDS2006)。
-
@altar 是 gr32 在 dpr 中使用 fastmm 之前还是之后使用的?