[Lazarus-es] error al liberar formulario
Paola Bruccoleri
pbruccoleri en adinet.com.uy
Sab Nov 6 14:56:38 CET 2010
El 06/11/2010 10:55 a.m., José Mejuto escribió:
>
> Para detectar estos problemas compila el proyecto con la opción de
> heaptrc "Proyecto -> Opciones -> Enlazado -> Usar heaptrc", ya que
> cada vez que liberas un bloque de memoria, heaptrc lo marca para que
> si intentas usarlo después de ser liberado siempre de error. En
> compilaciones normales puede dar error o no, es cuestión de azar. Si
> haces un DMPrincipal.free sin usar heaptrc, simplemente se libera la
> memoria, de modo que si intentas acceder de nuevo al objeto liberado
> la información correcta puede seguir ahí o no, depende del azar, si
> sigue ahí, pues no dará error, pero si el memory manager ya le ha
> asignado ese bloque liberado a otro objeto, el contenido será basura y
> kboom!. Te pongo un ejemplo:
>
esta opción no la sabía..!!!
ahora estoy haciendo pruebas, y en vez de aclararme más el panorama, me
estoy enloqueciendo. :)
Tengo 2 abm casi casi idénticos: solo cambia la tabla. Haciendo
simplemente la prueba de entrar a uno de ellos y salir sin hacer nada;
al cerrar el programa me indica que se ha liberado todo correctamente.
En cambio si hago lo mismo con el otro abm, me quedan 4 unfreed memory
blocks!! lo que no sé es cómo descubrirlos!! Obviamente si entro y salgo
varias veces de esa opción, se me multiplican x 4.
chauuuuuuuu
More information about the Lazarus-es
mailing list