Aqui mostraremos um aplicativo de exemplo que demonstrará como o FastMM pode detectar facilmente vazamentos de memória e outros defeitos de memória. Este aplicativo pode ser encontrado na pasta de demos do uniGUI \Framework\uniGUI\Demos\Desktop\FastMM.
1
Preparar arquivos do FastMM
Copie os arquivos necessários do FastMM para a pasta do seu aplicativo. O pacote FastMM4 inclui muitos arquivos, mas estes são os necessários para depurar este aplicativo:
FastMM4.pas
FastMM4Messages.pas
FastMM4Options.inc
FastMM_FullDebugMode.dll
2
Incluir unidades do FastMM no DPR
Adicione as duas primeiras unidades na seção uses do DPR. Elas devem ser os primeiros arquivos na lista de uses.
Exemplo de DPR:
fmm.dpr
program fmm;uses FastMM4, FastMM4Messages, Forms, ServerModule in'ServerModule.pas'{UniServerModule: TUniGUIServerModule}, MainModule in'MainModule.pas'{UniMainModule: TUniGUIMainModule}, Main in'Main.pas'{MainForm: TUniForm};
3
Substituir opções do FastMM para uniGUI
Ao invés de editar FastMM4Options.inc diretamente, a demo fornece um arquivo chamado FastMM4uniGUIOptions.inc que reúne configurações relevantes para um aplicativo uniGUI e substitui as configurações padrão do FastMM.
Para incluí-lo, adicione esta única linha em FastMM4.pas logo após o include existente:
FastMM4.pas (trecho)
unit FastMM4;interface{$Include FastMM4Options.inc}{$Include FastMM4uniGUIOptions.inc}// <-- inserir aqui
Essa alteração já está aplicada no FastMM4.pas fornecido com o projeto de demonstração.
4
Habilitar geração de arquivo MAP
É importante alterar as opções de Linkagem do projeto e definir a geração de Arquivo MAP como Detailed.
Embora em algumas versões do Delphi o FastMM pareça funcionar sem esta opção habilitada, em outras versões do Delphi você não conseguirá obter um relatório de rastreamento de pilha sem um arquivo MAP.
Como o projeto de demonstração é implantado apenas como um arquivo DPR, você precisa ajustar manualmente a opção acima após abrir o projeto.
Nota: Certifique-se de ter baixado o FastMM4 do seu repositório oficial e copiado os arquivos necessários para a pasta do seu aplicativo antes de prosseguir.