Page 1 of 1
Error Internal de Harbour
Posted: Fri Apr 04, 2008 7:29 am
by tsales
Antonio
¿Existe alguna forma de controlar este tipo de mensajes?
Son errores que no pasan por el fichero de control de errores ErrorSys.prg y provocan que la aplicación muestre repetidos Mensajes por pantalla que nunca terminan y al final se tiene que resetear la máquina.
Puedes realizar una prueba:
a:= ARRAY(5000000000000)
Saludos
PD: ¿Para cuando el proximo build?
Posted: Fri Apr 04, 2008 9:09 am
by Antonio Linares
Toni,
> repetidos Mensajes por pantalla que nunca terminan
Aparecen tipo MsgInfo() ?
> ¿Para cuando el proximo build?
Lo antes posible
Posted: Fri Apr 04, 2008 10:12 am
by tsales
Antonio
Si, aparecen tipo Msginfo()
Saludos
Posted: Fri Apr 04, 2008 11:57 am
by Antonio Linares
Toni,
Una solución sería modificar el gestor de errores internos de FWPPC, que es el de Harbour modificado, para que al primer error interno salga de la aplicación.
Pero entonces la aplicación no intentaría terminar de forma correcta (ó lo más correcta posible). Es decir no cerraría ficheros abiertos, liberar memoria usada, etc.
Tendríamos que ver que capacidad de recuperación, en una situación así, tiene el Windows Mobile. Lo lógico, en un entorno de 32 bits, es que el sistema operativo controlase la situación y no le afectase. Terminando el proceso y liberando todos sus recursos usados.
Posted: Fri Apr 04, 2008 2:09 pm
by tsales
Antonio
El problema es que no llega a entrar en el gestor de errores de FWPPC cuando se produce un error de este tipo (Errorsys.prg de FWPPC).
Puedes realizar la prueba con la definición del Array() que indicaba en el primer post.
Por otro lado, ¿no hay forma de que en lugar de que se muestren los MSGINFO() en cada error, se genere un error.log en disco sin mostrar nada en pantalla?
Saludos
Posted: Fri Apr 04, 2008 4:18 pm
by Antonio Linares
Toni,
>
El problema es que no llega a entrar en el gestor de errores de FWPPC cuando se produce un error de este tipo (Errorsys.prg de FWPPC).
>
Es que los errores internos no pasan por ese gestor de errores. Un error interno se produce a bajo nivel y la maquina virtual ya no puede usarse más.
>
Por otro lado, ¿no hay forma de que en lugar de que se muestren los MSGINFO() en cada error, se genere un error.log en disco sin mostrar nada en pantalla?
>
Si, _. Vamos a crear un OBJ y te lo enviamos. El problema es que si no mostramos nada en pantalla, la aplicación terminará de repente y el usuario no sabrá que pasa.
Posted: Fri Apr 04, 2008 5:41 pm
by tsales
Antonio
Te agradezco de antemano la modificación.
En todo caso para evitar que salga la aplicación sin mostrar nada, se podia incluir un mensajes parecido a esto por ejemplo:
"Error detectado. La aplicación se cerrará para evitar daños" (Muy tipico de Windows)
Prefiero algo así a que el usuario tenga que resetear la máquina.
Gracias Antonio
Saludos