Page 2 of 2

Re: GPF con hb_out.log

PostPosted: Tue Sep 24, 2013 5:45 pm
by George
"Can´t create DIALOG" es el mensaje de error mas misterioso que encuentro como desarrollador de Fivewin.
Me he encontrado con este mensaje, ahora con mucho menos frecuencia, desde que comenze a usar Fivewin hace mas de 10 años.
He aqui algunas de las cosas que podido detectar:
1. El error se genera, algunas veces, cuando hay un control en el dialogo al cual no hago referencia en el codigo (e.g. un control tipo image)
2. Al añadir un nuevo dialogo, en unas pocas ocasiones, se genera el mensaje de error. Este mensaje, y esto es importante hacerlo notar, se puede generar en el nuevo dialogo o en otro dialogo diferente, el cual no he tocado y que FUNCIONABA BIEN antes de añadir el nuevo dialogo.
3. El error lo corrijo de una de las siguientes maneras a) borrando del archivo RES algunos dialogos y/o bitmaps que ya no uso, b) Cambiando de nombre los dialogos que generan el error o c) borrando totalmente el (o los dialogos) que generan los errores y creando un nuevo dialogo basado en un dialogo duplicado de los que funcionan bien.

Como dije al principio: Un poco misterioso este error.

Saludos,

George

Re: GPF con hb_out.log

PostPosted: Tue Sep 24, 2013 6:02 pm
by hmpaquito
Antonio,

Antonio Linares wrote:Ojo que este bug no esta relacionado con las cajas de diálogo de recursos :-(

Este código solo se usa cuando se crea una caja de diálogo desde código usando @ nRow, nCol ...


Sí es verdad... :(

¿ Crees que es casualidad que en el error de arriba, en la pila de llamadas, incluya DialogBxoIndirect(), creada desde MsgRun() POR CODIGO prg ? 8) :
Code: Select all  Expand view
...
Called from DIALOGBOXINDIRECT(0)
Called from TDIALOG:ACTIVATE(274) in .\source\classes\DIALOG.PRG
Called from MSGRUN(42) in .\source\function\MSGRUN.PRG
...


¿ Crees en las casualidades Antonio ? Yo poco... pero admito que esta podría ser una de ellas.

Un cordial saludo

Re: GPF con hb_out.log

PostPosted: Tue Sep 24, 2013 6:07 pm
by Antonio Linares
George,

Are those dialogs, that ocasionally failed, created from resources ?

Are those resources inside the EXE or a DLL ?

Is the EXE loaded locally or executed from a remote pc ?

thanks :-)

Re: GPF con hb_out.log

PostPosted: Tue Sep 24, 2013 6:13 pm
by George
Antonio,
>>Are those dialogs, that ocasionally failed, created from resources ?
From resources RES type file.

Are those resources inside the EXE or a DLL ?
Inside EXE

Is the EXE loaded locally or executed from a remote pc ?
Local

I am using xHarbour builder (the commercial version of xHarbour) and FWH.

Regards,

George

Re: GPF con hb_out.log

PostPosted: Tue Sep 24, 2013 6:30 pm
by Antonio Linares
Paco (hmpaquito)

No pienso que tenga nada que ver. La corrupción de memoria se habría producido antes y el GPF hubiese sido inmediato.

Comento esto, que tal vez muchos sepan, que desde que se inventó el modo protegido de ejecución en los procesadores, cuando se intenta acceder a una zona de memoria no autorizada, el sistema genera automaticamente un GPF. Antes de que existiese el sistema protegido, una zona podia invadir a otra que no le pertenecia.

Cuando usamos un array local, la memoria (en C) se reserva en la pila de datos (data stack). Si en algun momento se hubiese llegado más alla del valor 250, el procesador habria emitido un GPF automaticamente y apareceria el nombre de esa función como el lugar de donde el fallo proviene.

De todas formas, he estado dandole un rato vueltas en la cabeza, por si existiese alguna posibilidad... :-) (que mi logica descarta)