Page 2 of 2

Re: Mi App se cuelga

PostPosted: Sun Nov 15, 2015 5:00 pm
by Armando
Lucas:

Gracias por el interés, no, no genera archivo log alguno.

Saludos

Re: Mi App se cuelga

PostPosted: Sun Nov 15, 2015 5:19 pm
by Armando
Karinha:

Probé tu sugerencia pero no es la solución.

Gracias por el apoyo.

Saludos

Re: Mi App se cuelga

PostPosted: Sun Nov 15, 2015 10:34 pm
by Armando
Amigos, Cristóbal y Antonio:

Con la sugerencia de Cristóbal ya me esta creando dos ficheros .TXT
Res.Log y Resources.Txt, este es el contenido de ambos

Res.Log (solo una porción pues es muy largo)
Code: Select all  Expand view

 ./,)/+-***
BMP
  */')0-)//
BRUSH
 1711608478
BMP
 /**0*//00.
BMP
  319099923
BMP
 1241847795
BMP
  486871505
BMP
  134550446
BMP
  '
).),+-).
BMP
 //0*'**0+-
BMP
 /()(-(*)0.
FONT
  873469951
BRUSH
 //)-),-*.+
FONT
  402987011
BMP
   67442704
BMP
  772085772
 


Resource.Txt
Code: Select all  Expand view

15/11/2015 16:30:14: DeleteObject( ::hFont ) failed from TFont:End()    -1173743625 0   .T. 
 


A ver si con esto encontramos el problema

Saludos

Re: Mi App se cuelga

PostPosted: Sun Nov 15, 2015 11:22 pm
by cnavarro
Armando
No te genera el fichero CheckRes.txt ?

Que version de Fw estas usando ?

Estas utilizando la function DeleteObject ?

Realizas alguna asignacion como .....:oFont := oFontMia ?

Re: Mi App se cuelga

PostPosted: Sun Nov 15, 2015 11:38 pm
by Armando
Cristóbal:

No te genera el fichero CheckRes.txt ? No, solo los dos antes mencionados

Que version de Fw estas usando ? FWH 0810 con xHarbour build 1.1.0 Intl. (SimpLex) (Rev. 6195)

Estas utilizando la function DeleteObject ? No, en ninguna parte de mi código

Realizas alguna asignacion como .....:oFont := oFontMia ? No, solo el DEFINE FONT .....
DEFINE FONT oFont NAME "MS Sans Serif" SIZE 0,-10
DEFINE FONT oFont1 NAME "Arial" SIZE 0,-28 BOLD
DEFINE FONT oFont2 NAME "MS Sans Serif" SIZE 0,-14 BOLD
DEFINE DIALOG oDlg RESOURCE "UpdCpa" OF oWnd ICON oIcono FONT oFont;
TITLE "Detalle de la cotización" BRUSH oApp:oBrush TRANSPARENT


Este es el código de salida
Code: Select all  Expand view

STATIC FUNCTION Salir( )
   IF MsgNoYes( "Seguro desea salir de la aplicación ?", oApp:cAplicacion )
      SET RESOURCES TO
      WinHelp( GetHelpFile( ), 2 )
      ResAllFree( )
      MEMORY( - 1 )
      oApp:oCon:Close()

       IF File( "checkres.txt" )
       FErase( "checkres.txt" )
    ENDIF

    CheckRes()

   ELSE
      RETURN ( .F. )
   ENDIF
RETURN ( .T. )
 


En un principio tenia puesto el código del CheckRes() antes de SET RESOURCES TO
y los ficheros que mostré son lo que me genera, ahora lo he movido como se ven arriba
y el fichero Res.Log solo tiene líneas como

0
BMP
0
BRUSH
0
BMP
0
BMP
0
BMP
0
BMP
0
BMP
0
BMP
0
BMP
0
BMP
0
FONT
0
BRUSH

Y el fichero RESOURCE.TXT
15/11/2015 16:30:14: DeleteObject( ::hFont ) failed from TFont:End() -1173743625 0 .T.
15/11/2015 17:44:17: DeleteObject( ::hFont ) failed from TFont:End() -1693837186 0 .T.

Saludos

Re: Mi App se cuelga

PostPosted: Mon Nov 16, 2015 8:14 am
by hmpaquito
Hola,

¿ Puedes probar a poner un memowrit("mierror.txt", e:description) al principio de la funcion errordialog() que esta en el fuente errsysw.prg ?
Despues que se produzca el error chequea la existencia de mierror.txt.

Se trataria de intentar cazar, si existe, un error tipico, que se convierte en atipico en la funcion erordialog(), si es redundante.

salu2

Re: Mi App se cuelga

PostPosted: Mon Nov 16, 2015 8:29 am
by Antonio Linares
Aún no lo he probado pero este código podría entrar en un bucle infinito que colgase la aplicación:

ACTIVATE WINDOW oWnd ON RESIZE ( IF( oWnd<>NIL, oWnd:SETSIZE(oDlg:nWidth,oDlg:nHeight+29), ));

Re: Mi App se cuelga

PostPosted: Mon Nov 16, 2015 8:50 am
by Antonio Linares
Este ejemplo se queda colgado en Windows 10:

Code: Select all  Expand view
#include "FiveWin.ch"

function Main()

   local oWnd

   DEFINE WINDOW oWnd

   ACTIVATE WINDOW oWnd ON RESIZE oWnd:SetSize( oWnd:nWidth + 1, oWnd:nHeight )

return nil

Re: Mi App se cuelga

PostPosted: Mon Nov 16, 2015 8:51 am
by Antonio Linares
En un evento estamos generando una acción que vuelve a generar el mismo evento.

Y esto produce el bucle infinito que cuelga la aplicación

Re: Mi App se cuelga

PostPosted: Mon Nov 16, 2015 3:53 pm
by Armando
Antonio:

Gracias por tu interés en el caso, te comento algunas cosas, no dudo que la aplicación
se quede colgada en W10, pero yo estoy usando W8.1, tengo varias aplicaciones con
el mismo código y hasta ahora ninguna se queda colgada, voy a tomar en cuenta tu
sugerencia para W10, y por último, la aplicación se queda colgada después de entrar
y salir del PRG tres o cuatro veces por lo que pienso que son recursos no destruidos,
si fuera el caso de tu prueba la aplicación se quedaría colgada desde la primera vez
que entramos.

Saludos

Re: Mi App se cuelga

PostPosted: Mon Nov 16, 2015 4:35 pm
by lubin
Armando,

Una vez algo se comia mi memoria, y eran el uso de arreglos, resultaba que usaba dentro de un bucle la instruccion AADD(v_arreglo, xValor) pero me olvidaba que debia reiniciar v_arreglo:={} cada vez que reiniciaba el Blucle (dowhile) , al final me quedaba si memoria y el proceso cuando se ejecuta se va hacendo mas lento, lento leeento..y me salia ese famoso ejemplo que mencionas.

Comparto eso quizas te de alguna idea... mira tus array-

Saludos
Lubin

Re: Mi App se cuelga (SOLUCIONADO, bueno eso creo)

PostPosted: Mon Nov 16, 2015 4:59 pm
by Armando
Cristóbal, Antonio, Paco Horta y demás amigos del foro:

Me parece que hemos encontrado al causante del problema gracias a todas
las sugerencias y consejos de ustedes pero principalmente a la sugerencia
de Paco Horta (Te ganaste otro chiste) :D

Trataré de explicar la solución por si a alguien más le sirve y si me ayudan
a entender el porque se generaba el problema.

Pensando ¿qué podría ser el problema me puse a razonar, si en todas mis
aplicaciones utilizo la misma técnica de codificación por qué en esta se
queda colgada y en las otras no sucede lo mismo????

Buscando la diferencia entre una y otra me di cuenta que en la del problema
estoy usando un brush y en las otras no, pero el problema no se queda ahí
sino en la forma en que estoy definiendo el brush.

Código con error:
Code: Select all  Expand view

En el MAIN (código abreviado)
FUNCTION Main()

   oApp := TAplicacion()
.....
.....
.....

CLASS TAplicacion
   DATA cUsuario            INIT ""
   DATA cRazonSocial        INIT "EMPRESA NO REGISTRADA, S.A. DE C.V."
   DATA cVersion            INIT "Versión 1.0M0"
   DATA oBrush              INIT NIL
 ....
....
ENDCLASS

Y en el PRG del problema tengo esto:

MEMVAR oApp (Me traigo muchas variables de la clase, entre otras el BRUSH)

FUNCTION SicWin1a(oWindow)
...
        DEFINE DIALOG oDlg RESOURCE "BrwCpa" OF oWnd FONT oFont ICON oIcono;
            BRUSH oApp:oBrush TRANSPARENT
....
....
RETURN(.T.)
 


Observen que el BRUSH del dialogo viene definido en la clase oApp, esto lo hice así pensando
en ahorrarme código pues solo defino el brush una sola vez y lo uso en tantos PRG como sea
necesario y si debo cambiar el brush pues solo tendría que cambiar una sola línea ("El flojo
y el mezquino andan dos veces el camino"), todo parecía y funcionaba bien, perooooo.....
se presentó el problema del cuelgue de la aplicación :shock:

En un principio, a sugerencia de Paco Horta, quite el brush de todos los PRGs excepto en el
MAIN, ahí deje la definición del BRUSH en la clase, y el problema parecía solucionarse pero
volvió a aparecer.

LA SOLUCION ???, la solución fue quitar el BRUSH de todos los PRG e inclusive del MAIN sobre
todo quitarlo de la clase.

He probado entrando y saliendo del PRG problema varias veces, hasta 10, y hasta ahora ya no
se cuelga la aplicación. :D

Antonio, también estoy aplicando solución al problema que encontraste pues más tarde o más
temprano irremediablemente pasaremos a W10, con el siguiente cambio

Code: Select all  Expand view

        ACTIVATE DIALOG oDlg NOWAIT ON INIT oDlg:MOVE(0,0) VALID ! GetASyncKey(VK_ESCAPE)
    ACTIVATE WINDOW oWnd ON INIT (IF( oWnd <> NIL, oWnd:SETSIZE(oDlg:nWidth,oDlg:nHeight+29), ),;
        (LaBarra(oWnd,oDlg,oBrw,oBrx,oBry),oBrw:SetFocus())) VALID Cierra()
 


Saludos y gracias a todos por tan invaluable ayuda.

Re: Mi App se cuelga (SOLUCIONADO, bueno eso creo)

PostPosted: Tue Nov 17, 2015 4:45 pm
by Armando
Lubin:

No había visto tu sugerencia, gracias por tu aportación

Tengo algunos arreglos como los que tú mencionas pero al entrar
los inicializo con

acSol := {}
anSol := {}


Saludos