Как активировать ReportMemoryLeaksOnShutdown только в режиме отладки? - PullRequest
11 голосов
/ 15 марта 2011

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

Ответы [ 3 ]

27 голосов
/ 15 марта 2011

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

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

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

23 голосов
/ 15 марта 2011

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

ReportMemoryLeaksOnShutdown:=DebugHook<>0;
4 голосов
/ 16 марта 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...