代码之家  ›  专栏  ›  技术社区  ›  Roland Bengtsson

使用fastmm和exitcode检测内存泄漏

  •  3
  • Roland Bengtsson  · 技术社区  · 15 年前

    我有一个在夜间自动构建中启用FastMMS MemlakReporting的想法。当然,应该禁用MessageBox。 最简单的可能是,如果应用程序exitcode为>0(如果存在memleak)。我做了一个快速测试,exitcode为0,带有memleak和fastmm。

    所以我的问题是如何检测fastmm中是否存在memleak来设置exitcode?

    2 回复  |  直到 15 年前
        1
  •  4
  •   Michał Niklas    15 年前

    在我之前的Delphi项目中,我使用了memcheck。它创建了文本日志文件,并检测到所有泄漏。我喜欢这种报告方式,我看到fastmm可以选择创建这样的文件:在 FastMM4Options.inc LogErrorsToFile . 这样,您需要检查日志文件,而不是检查exitcode。

        2
  •  2
  •   André    13 年前

    我修改了“ProcedureCheckBlocksonShutdown(AcheckForLeakedBlocks:Boolean);”以便我的当前客户设置exitcode,以便在生成的进程发生MEM泄漏时轻松签入dunit。 我在程序末尾添加了一行:

      ...
      {$ifdef UseOutputDebugString}
      OutputDebugStringA(LLeakMessage);
      {$endif}
      ExitCode := 1;     <-- added this one
      if Assigned(OnMessage) then
        OnMessage(LLeakMessage);
      ...
    
    推荐文章