1

我正在使用 FastMM 和 JCL 调试信息来跟踪我的应用程序中的内存泄漏。但是我有插件,它们是在 Delphi 中编译的 dll,dll 和主应用程序都使用常见的运行时包。现在,当我关闭应用程序时,它会在文本文件中生成内存泄漏报告,这很好,但它只包含主应用程序的堆栈跟踪。如果插件 dll 发生内存泄漏,堆栈跟踪会导致 LoadPlugins;主应用程序中的程序!当然,我的插件包含 JCL 调试数据(它被插入到 .dll 二进制文件中)。

哪里有问题?那是因为运行时包的使用吗?还是我忘记启用/禁用的某个开关(定义)?提前致谢

4

2 回答 2

2

您是否在 FastMM4Options.inc 中设置了 FullDebugMode 选项和内存管理器共享选项(ShareMM 及以下)?您是否还使用调试信息进行了编译?

于 2009-12-01T23:29:22.360 回答
0

FastMM 的作者 Pierre 回答了我的问题。如果有人感兴趣,解决方案不是在关闭时卸载插件,以保持堆栈跟踪和对象类型可访问。然而,这在关闭时导致了大量的错误(因为 FastMM 被卸载了两次左右),所以最后我不得不将 FastMM 移动到共享包......

于 2009-12-31T13:29:30.593 回答