Ver Mensaje Individual
  #12  
Antiguo 13-09-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.738
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Yo para cazar los "Memory Leaks" utilizo la unidad MemCheck.
La puedes bajar de aquí.

Básicamente debes ponerla dentro de tu proyecto, como primera unidad.
Lo primero que debe hacer tu aplicación es llamar a MemChk.
Código Delphi [-]
program MiPrograma;

uses
  MemCheck in '..\Utilidades\MemCheck.pas',
  Forms,
  SysUtils,
  ...;

{$R *.RES}

begin
  MemChk;

  Application.CreateForm(TDMMain, DMMain);
  Application.CreateForm(TFMMain, FMMain);

  Application.Run;
end.
Para compilar tu versión de desarrollo debes activar algunos checks en las opciones de compilacion:
Mira aquí.
No olvides activar la opción TD32 debug information en la pestaña Linker.

Ejecutas el programa y al salir te da información en un texto que debería serte útil para buscar lugares donde no liberas objetos.

Nota: Luego de agregar MemCheck al proyecto y haber tocado las opciones de compilación, deberías borrar todas las *.dcu para recompilar completamente tu proyecto.
Nota 2: Con las opciones de compilacion puestas el .exe es mucho más grande. Solo deberías utilizar estas opciones durante el desarrollo. Antes de entregar al cliente deberías quitar todas las opciones y comentar la línea //MemChk;
Responder Con Cita