2010-01-13 37 views
3

我有一個想法,在夜間自動構建中啓用FastMMs memleakreporting。該消息框當然應該被禁用。 最簡單的可能是如果應用程序exitcode> 0,如果有memleak。我做了一個快速測試,出口代碼爲0,帶有memleak和FastMM。使用FastMM檢測內存泄漏並輸出代碼

所以我的問題是如何檢測FastMM中是否有memleak來設置退出碼?

回答

4

對於我之前的Delphi項目,我使用了MemCheck。它創建了所有檢測到的泄漏文本日誌文件。我喜歡這種報道方式,我看到FastMM有選擇創建這樣的文件:在FastMM4Options.incLogErrorsToFile。這樣你需要檢查日誌文件而不是檢查exitcode。

+0

這是當然的一種方法。我使用Finalbuilder,因此應該很容易檢測到memleak文件。 – 2010-01-13 09:01:27

2

我修改了「procedure CheckBlocksOnShutdown(ACheckForLeakedBlocks:Boolean);」對於我現在的客戶來說,要設置退出代碼,所以我可以輕鬆地在DUnit中檢查生成的進程是否存在mem泄漏。 我在程序結尾添加了一行:

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