2011-03-15 338 views

回答

22

嘗試使用DebugHook變量

ReportMemoryLeaksOnShutdown:=DebugHook<>0; 
+1

,可能禁用與'DebugHook','{$ WARN SYMBOL_PLATFORM OFF}相關的愚蠢警告' – jasonpenny 2011-03-15 20:20:42

+4

這是爲什麼警告 「愚蠢」?這是真的。 – 2011-03-15 20:26:05

+0

非常感謝。 – Salvador 2011-03-15 20:28:26

24

如果你的意思是「調試模式」爲使用Debug構建配置(D2007 +)編譯,你必須調試符號定義,所以你甚至可以激活ReportMemoryLeaksOnShutdown oustide與調試器中運行時:

{$IFDEF DEBUG} 
    ReportMemoryLeaksOnShutdown := True; 
{$ENDIF} 

如果你想只有在調試器是目前運行,看看RRUZ answer

+6

+1我這樣做。檢測調試器感覺很髒。 – 2011-03-15 20:28:39

1

我通常使用的IsDebuggerPresent API功能,並且還帶有DEBUG符號檢查圍繞着它這樣的代碼不發佈最終構建:

{$IFDEF DEBUG} 
    ReportMemoryLeaksOnShutDown := IsDebuggerPresent(); 
{$ENDIF} 

功能應該已經在Windows單元中聲明,如果你並沒有使用Delphi的古老版本,並且適用於Windows 2000及更新的版本。