Реализация модуля проверки утечки памяти

В данном разделе я предлагаю реализацию модуля проверки утечки памяти. Нам необходимо создать новый модуль и определить два метода:

function CheckGetMem(Size: Integer): Pointer;
begin
  Result := [Системный].GetMem(Size);
  // Вставим здесь свой код
end;

function CheckFreeMem(Address: Pointer): Integer;
begin
  Result := [Системный].FreeMem(Address);
  // Вставим здесь свой код
end;

В разделе инициализации модуля запомним старый менеджер памяти и установим новый, который ссылается на созданные методы. В разделе деинициализации модуля проверим утечку памяти.

Это всё, что было нужно для проверки утечки памяти. Есть ещё требование, относящееся к размещению ссылки на этот модуль в проекте: он должен быть первым в списке модулей проекта (как модуль ShareMem).

Тестирование модуля производилось на Borland Delphi 7.0 с установленным SP1. На Borland Delphi 6.0 c установленным SP3 желаемого результата не получилось, т.к. в самих системных модулях есть утечка памяти.

Если хочешь скачать исходники, то щёлкай здесь.

    18.10.2005


Hosted by uCoz