如何仅在调试模式下激活ReportMemoryLeaksOnShutdown?
问题描述:
我需要激活ReportMemoryLeaksOnShutdown
功能报告我的应用程序的内存泄漏,但仅在调试模式(当德尔福IDE正在运行)。我怎样才能做到这一点?如何仅在调试模式下激活ReportMemoryLeaksOnShutdown?
答
如果你的意思是“调试模式”为使用Debug构建配置(D2007 +)编译,你必须调试符号定义,所以你甚至可以激活ReportMemoryLeaksOnShutdown oustide与调试器中运行时:
{$IFDEF DEBUG}
ReportMemoryLeaksOnShutdown := True;
{$ENDIF}
如果你想只有在调试器是目前运行,看看RRUZ answer
+6
+1我这样做。检测调试器感觉很脏。 – 2011-03-15 20:28:39
答
我通常使用的IsDebuggerPresent API功能,并且还带有DEBUG符号检查围绕着它这样的代码不发布最终构建:
{$IFDEF DEBUG}
ReportMemoryLeaksOnShutDown := IsDebuggerPresent();
{$ENDIF}
功能应该已经在Windows单元中声明,如果你并没有使用Delphi的古老版本,并且适用于Windows 2000及更新的版本。
,可能禁用与'DebugHook','{$ WARN SYMBOL_PLATFORM OFF}相关的愚蠢警告' – jasonpenny 2011-03-15 20:20:42
这是为什么警告 “愚蠢”?这是真的。 – 2011-03-15 20:26:05
非常感谢。 – Salvador 2011-03-15 20:28:26