Как активировать ReportMemoryLeaksOnShutdown только в режиме отладки?

Мне нужно активировать ReportMemoryLeaksOnShutdown функциональность для сообщения об утечках памяти моего приложения, но только в режиме отладки (когда работает Delphi IDE). Как я могу это сделать?

3 ответа

Решение

Попробуйте использовать DebugHook переменная

ReportMemoryLeaksOnShutdown:=DebugHook<>0;

Если вы имеете в виду "режим отладки", скомпилированный с использованием конфигурации сборки Debug (D2007+), у вас будет определен символ DEBUG, так что вы можете активировать ReportMemoryLeaksOnShutdown даже при запуске oustide отладчика с помощью:

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

Если вы хотите запустить только при наличии отладчика, посмотрите ответ RRUZ

Я обычно использую функцию API IsDebuggerPresent, а также окружаю ее проверкой символа DEBUG, чтобы код не заканчивался в сборках релиза:

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

Функция уже должна быть объявлена ​​в модуле Windows, если вы не используете древнюю версию Delphi и работаете в Windows 2000 и новее.

Другие вопросы по тегам