Как активировать 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 и новее.