如何仅在调试模式下激活ReportMemoryLeaksOnShutdown?

时间:2011-03-15 20:08:15

标签: delphi

我需要激活ReportMemoryLeaksOnShutdown功能来报告我的应用程序的内存泄漏,但只能在调试模式下(当Delphi IDE运行时)。我怎么能这样做?

3 个答案:

答案 0 :(得分:27)

如果您的意思是使用Debug构建配置(D2007 +)编译的“调试模式”,您将定义DEBUG符号,因此即使在调试器运行oustide时,您也可以激活ReportMemoryLeaksOnShutdown:

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

如果只想在调试器存在的情况下运行,请查看RRUZ answer

答案 1 :(得分:23)

尝试使用DebugHook变量

ReportMemoryLeaksOnShutdown:=DebugHook<>0;

答案 2 :(得分:4)

我通常使用 IsDebuggerPresent API函数,并使用DEBUG符号检查将其包围,因此代码不会在发布版本中结束:

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

如果您没有使用古老版本的Delphi并且可以在Windows 2000及更高版本上运行,则该功能应该已经在Windows单元中声明。