我有想法在夜间自动构建中启用FastMMs memleakreporting。消息框当然应该被禁用。 最简单的可能是应用程序exitcode是> 0如果有memleak。我做了一个快速测试,exitcode为0,带有memleak和FastMM。
所以我的问题是如何检测FastMM中是否有memleak来设置exitcode? p>
答案 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);
...