Мне нужно активировать функциональность ReportMemoryLeaksOnShutdown
, чтобы сообщать о утечке памяти моего приложения, но только в режиме отладки (когда работает среда Delphi IDE). Как я могу это сделать?
Как активировать ReportMemoryLeaksOnShutdown только в режиме отладки?
Ответ 1
попробуйте использовать переменную DebugHook
ReportMemoryLeaksOnShutdown:=DebugHook<>0;
Ответ 2
Если вы имеете в виду "режим отладки", скомпилированный с использованием конфигурации сборки Debug (D2007 +), у вас будет установлен символ DEBUG, поэтому вы можете активировать ReportMemoryLeaksOnShutdown, даже если вы выполняете отладчик с помощью:
{$IFDEF DEBUG}
ReportMemoryLeaksOnShutdown := True;
{$ENDIF}
Если вы хотите запускать только в том случае, если отладчик присутствует, посмотрите ответ RRUZ
Ответ 3
Я обычно использую функцию API IsDebuggerPresent, а также окружаю ее с помощью проверки символа DEBUG, поэтому код не заканчивается в выпусках:
{$IFDEF DEBUG}
ReportMemoryLeaksOnShutDown := IsDebuggerPresent();
{$ENDIF}
Эта функция уже должна быть объявлена в блоке Windows, если вы не используете древнюю версию Delphi и работаете в Windows 2000 и новее.