Ver Mensaje Individual
  #5  
Antiguo 18-03-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Reputación: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Cita:
Lo has hecho con el componente TJvDebugHandler? o con las units ExceptLog y MemCheck?
Con MemCheck y ExceptLog.

Yo utilizo MemCheck en todos mis proyectos.
Siempre compilo con la opción de "Include TD32 Debug Info" activada y si tras las pruebas sale el informe de errores de memoria, corrijo el código hasta que sea correcto.
Antes de entregarlo al cliente quito la opción de compilacion y quito la unidad MemCheck del proyecto.
Compilo, entrego los binarios y a seguir programando al siguiente versión o a corregir el siguiente bug.

Utilizo mucho try..except y try..finally para que la aplicación informe de errores y siga corriendo correctamente. A veces están anidados y dentro de este bloque se llaman a procedimientos y funciones que también tienen estos bloques.
Pongo breakpoints en varios lugares, pero no pasa en un orden correcto porque se los salta y ejecuta el bloque except o finally.

Cuando ya esta demasiado liado, una erramienta que después de la ejecución te informe de las excepciones por las que ha pasado me ha ayudado enormemente.

Código Delphi [-]
{Esto ejecutaría 
- parte de Proc1 y su bloque Finally, 
- el bloque Finally de Proc2 y 
- el bloque Except del programa

Esto no parará en el Breakpoint
pero ExceptLog te dirá que en Proc1 saltó una Excepción "Division by Cero"
}

procedure proc1
begin
  try
     ...
     a := 1 / 0; // Exception Division by Cero
     ...
     BreakPoint 
     ...
  finally
     ...
  end;
end;

procedure proc2
begin
  try
     Proc1
     ...
  finally
     ...
  end;
end;

procedure Proc3
begin
   try
      Proc2;
   finally
      ...
   end;
end;

begin
   try
      Proc3;
   except
      ...
   end;
end;

Última edición por duilioisola fecha: 18-03-2011 a las 13:26:42.
Responder Con Cita