3

我有一个想法,可以在夜间自动构建中启用 FastMMs memleakreporting。消息框当然应该被禁用。如果存在内存泄漏,最简单的可能是应用程序退出代码 > 0。我做了一个快速测试,退出代码为 0,带有 memleak 和 FastMM。

所以我的问题是如何检测 FastMM 中是否存在 memleak 来设置退出代码?

4

2 回答 2

4

对于我之前的 Delphi 项目,我使用了 MemCheck。它创建了包含它检测到的所有泄漏的文本日志文件。我喜欢这种报告方式,而且我看到 FastMM 有创建此类文件的选项:在FastMM4Options.inc里面有LogErrorsToFile. 这样您需要检查日志文件而不是检查退出代码。

于 2010-01-13T08:44:31.193 回答
2

我修改了“程序 CheckBlocksOnShutdown(ACheckForLeakedBlocks: Boolean);” 让我当前的客户设置退出代码,因此如果生成的进程有内存泄漏,我可以轻松地检查 DUnit。我在程序末尾添加了一行:

  ...
  {$ifdef UseOutputDebugString}
  OutputDebugStringA(LLeakMessage);
  {$endif}
  ExitCode := 1;     <-- added this one
  if Assigned(OnMessage) then
    OnMessage(LLeakMessage);
  ...
于 2012-04-04T06:13:06.933 回答