使用FastMM和exitcode检测内存泄漏

时间:2010-01-13 08:30:07

标签: delphi memory-leaks fastmm

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

所以我的问题是如何检测FastMM中是否有memleak来设置exitcode?

2 个答案:

答案 0 :(得分:4)

对于我之前的Delphi项目,我使用了MemCheck。它创建了文本日志文件,其中包含检测到的所有泄漏。我喜欢这种报告方式,我看到FastMM有选项可以创建这样的文件:在FastMM4Options.inc中有LogErrorsToFile。这样你就需要检查日志文件,而不是检查exitcode。

答案 1 :(得分:2)

我修改了“procedure CheckBlocksOnShutdown(ACheckForLeakedBlocks:Boolean);”对于我当前的客户设置exitcode,所以我可以轻松检查DUnit,如果一个衍生过程有一个mem泄漏。 我在程序结束时添加了一行:

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