3

我正在尝试使用 FastMM 4.99 版(根据顶部的评论FastMM4.pas)。我已按照 说明使用带有堆栈跟踪 完整调试模式,并且当我在 IDE 调试器下运行我的 .exe 时发现泄漏。例如

FastMM 泄漏报告对话框

但是,当我尝试从命令提示符或双击 Windows 资源管理器运行可执行文件时,我没有报告任何泄漏。UnicodeString 泄漏可能是假的,但我确信 TINiFile 泄漏是真实的。不使用调试器时如何使 FastMM 报告/日志泄漏?

更新:该项目还使用 madExcept 3.0n:.dpr 文件确实将 FastMM4 作为其使用条款中的第一项。还需要什么才能使这两者共存吗?

4

1 回答 1

12

你没有正确配置FastMM4Options.inc。从随版本 4.97 分发的文件中,它在第 405 行附近:

{Set this option to require the presence of the Delphi IDE to report memory
 leaks. This option has no effect if the option "EnableMemoryLeakReporting"
 is not also set.}
{.$define RequireIDEPresenceForLeakReporting}

确保.位于最后一行(在 之前$define)并重建您的项目。

@wades 发现还有另一个设置,就在我提到的那个下面RequireDebuggerPresenceForLeakReporting,默认为开启。通过在左大括号后添加一个句点来禁用它:

{Set this option to require the program to be run inside the IDE debugger to
 report memory leaks. This option has no effect if the option
 "EnableMemoryLeakReporting" is not also set.}
{$define RequireDebuggerPresenceForLeakReporting}

(根据@wades 的要求添加到这个答案中。)

于 2012-07-12T02:43:57.357 回答