FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
EAccessViolation después de cerrar el programa
Hola,
Antes de nada, aclaro que quiero indicaciones de por donde atacar el problema, no espero una solución directa. Tengo una aplicación que peta después de cerrarse, sale la típica ventana de windows "El programa dejó de funcionar y tal" y después de cerrarlo, aparece un EAccessViolation con una dirección de memoria fija 0002657C me hace suponer que es algo que se está destruyendo dos veces pero como digo, ocurre en el dpr después del Application.Run, es decir en el "end." La aplicación es compleja: Delphi 7 Update 2 con FastMM, componentes IBX 7.11, Firebird 2.5, Indy 9.00, 3 ó 4 ActiveX con programación COM Como todas las ventanas se crean en ejecución, he logrado acotar el problema a abrir la ventana principal del programa (MDI), cerrarla y obtener el pete. Ahí están las unidades de inicialización de IBEvents, Indy (Antifreeze), etc. He configurado FastMM para que me enseñe las fugas de memoria, aunque he encontrado unas cuantas, no es nada del tipo de error que me da. Tambien he usado la JCLDebug con el diálogo de Excepción, mostrando la pila de llamadas y tal, pero en ese punto de la aplicación ya no salta. Es más, tengo el "Stop on Delphi Exception" y el depurador de Delphi no se para. ¿Es correcto pensar que está fallando en una claúsula "finalization" y/o destructor de algo? ¿algo más que mirar? ¿alguna forma de abordar estos errores? Saludos y gracias
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#2
|
||||
|
||||
Esos casos son de lo peor para encontrarlos
1- Puedes "desactivar" algún módulo, compilar y probar. 2- Si falla, entonces lo vuelves a activar y desactivas otro, compilas y pruebas. 3- Si no falla, ya sabes en qué módulo falla y si falla GOTO 2 Siento no poder ayudar mucho, pero ya sabes que estas cosas son de "prueba y error" y mucha lupa detectivesca |
#3
|
|||
|
|||
Hola
Yo "comentaría" los métodos (.Free) de todos los componentes, clases y/o formas que tengas creados en tiempo de ejecución y regresando uno a uno hasta encontrar el culpable, y en específico yo comenzaría por todos los TStrings Saludos |
#4
|
||||
|
||||
Asias a ambos, es más o menos lo que hago, con FastMM detecto los memory leaks, desactivando módulos (son más de 300 ventanas) veo que pasa sólo con la ventana principal cargada. Ya he revisado todos los eventos de la ventana.
Incluso he revisado el subversion para ver qué han modificado en las últimas versiones, pero ni así, josss. En fin, seguiremos rascando a ver si me toca el premio. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#5
|
||||
|
||||
Hola.
¿Has modificado el action del evento close de alguno de los formularios?. A mi me pasaba algo parecido y lo solventé quitando el action de uno de los formularios. Saludos
__________________
Be water my friend. |
#6
|
||||
|
||||
Al parecer el problema está en el IBEvents, al tiempo de destruirlo. Conste que uso delphi 7 update 2 + IBX 7.11 con Firebird 2.5, por tanto, para mí es lógico que pete de esta forma. Ya lo dijo el creador de interbase, que Firebird funcione con IBX es mera casualidad.
El componente lo crea y destruye el formulario principal. Hasta hace unas semanas funcionaba sin problemas. Ahora de buenas a primeras BOOOM. Por cierto, me gusta mucho este código (puesto que usa Threads y demás, lo veo hasta lógico):
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Recuperar BookMark despues de cerrar dataset... | verito_83mdq | Varios | 10 | 27-01-2011 00:03:18 |
Creacion de botones runtime, los cuales se mantengan despues de cerrar la aplicación | giocatore | Varios | 18 | 25-01-2011 20:29:38 |
Como cerrar preview de QuickReport despues de imprimir | AndGaG | Impresión | 1 | 11-05-2006 10:30:54 |
necesito cerrar el preview despues de imprimir | cristok | Impresión | 1 | 13-06-2003 00:35:35 |
Evento MDIform despues de cerrar un formulario MDChild | ing_alsaac | Varios | 3 | 02-06-2003 17:35:20 |
|