夜間の自動ビルドで FastMMs memleakreporting を有効にする考えがあります。もちろん、メッセージボックスは無効にする必要があります。最も単純なのは、アプリケーションの終了コードが > 0 でメモリリークがあった場合です。簡単なテストを行ったところ、memleak と FastMM で終了コードは 0 でした。
私の質問は、FastMM に終了コードを設定するためのメモリリークがあったかどうかをどのように検出できますか?
夜間の自動ビルドで FastMMs memleakreporting を有効にする考えがあります。もちろん、メッセージボックスは無効にする必要があります。最も単純なのは、アプリケーションの終了コードが > 0 でメモリリークがあった場合です。簡単なテストを行ったところ、memleak と FastMM で終了コードは 0 でした。
私の質問は、FastMM に終了コードを設定するためのメモリリークがあったかどうかをどのように検出できますか?
以前の Delphi プロジェクトでは、MemCheck を使用しました。検出したすべてのリークを含むテキスト ログ ファイルを作成しました。私はこの報告方法が好きで、FastMM にはそのようなファイルを作成するオプションがあることがわかりFastMM4Options.inc
ますLogErrorsToFile
。この方法では、終了コードをチェックするのではなく、ログ ファイルをチェックする必要があります。
「procedureCheckBlocksOnShutdown(ACheckForLeakedBlocks:Boolean);」を変更しました。現在の顧客が出口コードを設定できるように、生成されたプロセスにmemリークがあるかどうかをDUnitで簡単にチェックインできました。手順の最後に行を追加しました。
...
{$ifdef UseOutputDebugString}
OutputDebugStringA(LLeakMessage);
{$endif}
ExitCode := 1; <-- added this one
if Assigned(OnMessage) then
OnMessage(LLeakMessage);
...