How to activate ReportMemoryLeaksOnShutdown only in debug mode?

前端 未结 3 947
深忆病人
深忆病人 2021-01-04 11:54

I need to activate the ReportMemoryLeaksOnShutdown functionality to report the memory leaks of my application, but only under debug mode (when the Delphi IDE is

相关标签:
3条回答
  • 2021-01-04 12:21

    try using the DebugHook variable

    ReportMemoryLeaksOnShutdown:=DebugHook<>0;
    
    0 讨论(0)
  • 2021-01-04 12:22

    If you mean "debug mode" as compiled using the Debug build configuration (D2007+), you'll have the DEBUG symbol defined, so you can activate the ReportMemoryLeaksOnShutdown even when running oustide the debugger with:

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

    If you want to run only if the debugger is present, look at RRUZ answer

    0 讨论(0)
  • 2021-01-04 12:30

    I usually use the IsDebuggerPresent API function and also surround it with a DEBUG symbol check so the code doesn't end up in release builds:

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

    The function should already be declared in the Windows unit, if you're not using an ancient version of Delphi and works on Windows 2000 and newer.

    0 讨论(0)
提交回复
热议问题