Como Fazer com que o Delphi gere relatório da memória não desalocada? (Vazamento de memória)

Resposta:
Desde o Delphi 2006 existe uma váriavel boolean global na Unit system.pas com o nome ReportMemoryLeaksOnShutdown, que quando o valor é true o sistema emite um relatório de vazamento de memória ao finalizar o programa em execução.

Exemplo:

program teste_Vazamento_Memoria;
{$APPTYPE CONSOLE}
uses
SysUtils;
Type
TMyClass = Class
Nome : String;
Endereco:String;
end;
Var
MyClass : TMyClass;
begin
try
{ TODO -oUser -cConsole Main : Insert code here }
system.ReportMemoryLeaksOnShutdown := true;
MyClass := TMyClass.Create;
MyClass.Nome := 'Teste de vazamento de memoria';
MyClass.Endereco := 'Teste de vazamento de memoria';
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
//Obs: Não desaloquei MyClass para que o sistema gere o relatório após sua execução.

Comentários