FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Mi App se cuelga (SOLUCIONADO, bueno eso creo)
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Mi App se cuelga (SOLUCIONADO, bueno eso creo)
Posted: Thu Nov 12, 2015 02:19 AM

Amigos del foro y Antonio:

Tengo una aplicaci贸n y en especial un PRG que despu茅s de entrar y salir varias veces a 茅l
la aplicaci贸n se cuelga con el famoso error LA APLICACION XXXXX HA DEJADO DE FUNCIONAR
y hay que cerrar el programa.

Deduzco que puede ser que algunos recursos se me quedan sin eliminar.

C贸mo puedo saber que recursos se quedan en memoria?

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Mi App se cuelga
Posted: Thu Nov 12, 2015 07:03 AM
Armando, al principio de la aplicacion

Code (fw): Select all Collapse
   SetResDebug( .T. )


y antes de salir

Code (fw): Select all Collapse
.../...

   if File( "checkres.txt" )
      FErase( "checkres.txt" )
   endif
   CheckRes()

return nil
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Mi App se cuelga
Posted: Thu Nov 12, 2015 11:41 AM
Code (fw): Select all Collapse
FUNCTION FINALIZA()

    DBCLOSEALL()

    FreeResources() // Set Resources To

    Release All
    SysRefresh()

    /*limpia arreglo y llama al colecor de basura de xharbour*/ //-> Lixeira
    HB_GCALL( .T. )

    CLEAR MEMORY

    PostQuitMessage( 0 )

    __QUIT()

RETURN NIL


Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: Mi App se cuelga
Posted: Thu Nov 12, 2015 12:07 PM

Karinha;
muchas gracias por compartir el c贸digo!!
en mi EXIT PROCEDURE, luego de CLOSE ALL solo uso SET RESOURCES TO!

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Mi App se cuelga
Posted: Thu Nov 12, 2015 01:30 PM
Al terminar un programa, es Windows el que recupera la memoria totalmente.
A mi modo de ver el procedimiento de salida solo necesita esto y en este orden:
Code (fw): Select all Collapse
FUNCTION FINALIZA()
 
    PostQuitMessage( 0 )
    SysRefresh()

    DBCLOSEALL()

    __QUIT()

RETURN NIL
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Mi App se cuelga
Posted: Thu Nov 12, 2015 02:55 PM

Amigos foreros:

Como dec铆a Jack "El destripador", vamos por partes.

Primero debo aclarar que el problema es en un PRG, no en el PRG Main(), es decir
es en un PRG que forma parte de la aplicaci贸n, entro y salgo varias veces de ese PRG
y truena. Otra cosa, utilizo tablas de MySql.

Crist贸bal:
Puse el c贸digo que sugieres en el PRG del problema y no me crea fichero alguno.
tambi茅n ya lo puse en el MAIN y tampoco me crea el fichero.

hmpaquito:
Con tu sugerencia al salir del PRG me saca de toda la aplicaci贸n, quite las l铆neas
PostQuitMessage( 0 ) y
__QUIT()

Ya no sale de la aplicaci贸n pero el problema persiste.

karinha
Se presenta la misma situaci贸n que con la sugerencia de hmpaquito.

Mario:
No puedo usar el SET RESOURCES TO porque tengo una variable de
tipo MEMVAR que tambi茅n la cierra y al volver a entrar al PRG dicha
variable ya no existe :(

Alguna otra idea?

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 346
Joined: Mon Oct 05, 2009 03:35 PM
Re: Mi App se cuelga
Posted: Thu Nov 12, 2015 02:57 PM

estimados:

Creo que el problema no es en la salida del sistema, si no que se cuelga estando en ejecusi贸n, tube ese problema, yo use el administrador de tareas de windows para revisar el consumo de memoria de mi aplicaci贸n, me di cuenta de que esa memoria no se liberaba cuando sal铆a de los procedimientos de cada "prg" que ten铆a y que al final colapsaba al ir aumentando esos megas en uso de memoria.

la soluci贸n a esto fue colocar al comienzo de cada prg el Hb_GCall( .T. ) y al salir de ese prg la instrucci贸n MemoryFlush(), con esto el administrator de tareas de windows me informaba la liberaci贸n de esa memoria que ocupaba en ese procedimiento, y mi aplicaci贸n se estabiliz贸, sin darme los problemas de cuelgue y de recursos.

no s茅 si 茅sta sea una soluci贸n adecuada, pero a mi me funciona hasta el momento.

saludos.

SkyPe: armando.lagunas@hotmail.com

Mail: armando.lagunas@gmail.com
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Mi App se cuelga
Posted: Thu Nov 12, 2015 03:03 PM

Armando, muestra como est谩s haciendo. poste el c贸digo fuente. Saludos.

Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Mi App se cuelga
Posted: Thu Nov 12, 2015 03:10 PM

Tocayo:

Gracias por el apoyo, uso xHarbour y parece que la funci贸n MemoryFlush() no es de xHarbour,
me la reclama el compilador. Tendr茅 que pasarme a Harbour??

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Mi App se cuelga
Posted: Thu Nov 12, 2015 03:23 PM
karinha

A ver si me explico:

C贸digo del Main()

Code (fw): Select all Collapse
FUNCTION Main()
...
...
RETURN(.T.)

...
MENUITEM aSubM1[01] PROMPT "&Paileria" ;
聽 聽 RESOURCE "CotP16" ;
聽 聽 ACTION SicWin1a(oWindow) ;
聽 聽 MESSAGE "Registrar e imprimir cotizaciones PAILERIA"
...
RETURN(oMenu)


Este c贸digo es parte del SicWin1a() PRG, aqu铆 es donde la aplicaci贸n se cuelga

Code (fw): Select all Collapse
MEMVAR oApp
FUNCTION SicWin1a(oWindow)
...
聽 聽 DEFINE FONT oFont NAME "MS Sans Serif" SIZE 0,-10
聽 聽 DEFINE ICON oIcono RESOURCE "AppLogo"
聽 聽 DEFINE WINDOW oWnd MDICHILD OF oWindow FROM 0,0 TO 10,10;
聽 聽 聽 聽 TITLE "Relaci贸n de cotizaciones PAILERIA del mes" ICON oIcono

聽 聽 聽 聽 oWnd:bGotFocus 聽= { || oBrw:SetFocus() }

聽 聽 聽 聽 DEFINE DIALOG oDlg RESOURCE "BrwCpa" OF oWnd FONT oFont ICON oIcono;
聽 聽 聽 聽 聽 聽 BRUSH oApp:oBrush TRANSPARENT
....
....
...
...
聽 聽 聽 聽 ACTIVATE DIALOG oDlg NOWAIT ON INIT oDlg:MOVE(0,0) VALID ! GetASyncKey(VK_ESCAPE)
聽 聽 ACTIVATE WINDOW oWnd ON RESIZE ( IF( oWnd<>NIL, oWnd:SETSIZE(oDlg:nWidth,oDlg:nHeight+29), ));
聽 聽 聽 聽 ON INIT (LaBarra(oWnd,oDlg,oBrw,oBrx,oBry),oBrw:SetFocus()) VALID Cierra()

聽 聽 oFont:END()
聽 聽 oIcono:END()
RETURN (NIL)


STATIC FUNCTION Cierra()
聽 聽 IF oRsEmp <> NIL
聽 聽 聽 聽 IF oRsEmp:State() = adStateOpen
聽 聽 聽 聽 聽 聽 oRsEmp:Close()
聽 聽 聽 聽 ENDIF
聽 聽 ENDIF
...
...
聽 聽DBCLOSEALL()

// 聽 聽FreeResources() // Set Resources To

// 聽 聽Release All
聽 聽 SysRefresh()

聽 聽 /*limpia arreglo y llama al colecor de basura de xharbour*/ //-> Lixeira
聽 聽 HB_GCALL( .T. )

聽 聽 CLEAR MEMORY

// 聽 聽PostQuitMessage( 0 )

// 聽 聽__QUIT()
RETURN(.T.)


Si requieres algo m谩s, por favor solo pidelo

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 346
Joined: Mon Oct 05, 2009 03:35 PM
Re: Mi App se cuelga
Posted: Thu Nov 12, 2015 03:23 PM
ups!

Code (fw): Select all Collapse
FUNCTION MemoryFlush()
聽 聽 SetProcess( -1, -1, -1 )
RETURN NIL

DLL32 Function SetProcess( hWnd As LONG, nMinWorkingSpace As LONG, nMaxWorkingSpace As LONG ) As LONG PASCAL From "SetProcessWorkingSetSize" Lib "Kernel32.dll"


usando el mismo codigo seria asi la solucion

Code (fw): Select all Collapse
MEMVAR oApp
FUNCTION SicWin1a(oWindow)

HB_GCALL( .t. ) 聽 聽<--- aqui

...
聽 聽 DEFINE FONT oFont NAME "MS Sans Serif" SIZE 0,-10
聽 聽 DEFINE ICON oIcono RESOURCE "AppLogo"
聽 聽 DEFINE WINDOW oWnd MDICHILD OF oWindow FROM 0,0 TO 10,10;
聽 聽 聽 聽 TITLE "Relaci贸n de cotizaciones PAILERIA del mes" ICON oIcono

聽 聽 聽 聽 oWnd:bGotFocus 聽= { || oBrw:SetFocus() }

聽 聽 聽 聽 DEFINE DIALOG oDlg RESOURCE "BrwCpa" OF oWnd FONT oFont ICON oIcono;
聽 聽 聽 聽 聽 聽 BRUSH oApp:oBrush TRANSPARENT
....
....
...
...
聽 聽 聽 聽 ACTIVATE DIALOG oDlg NOWAIT ON INIT oDlg:MOVE(0,0) VALID ! GetASyncKey(VK_ESCAPE)
聽 聽 ACTIVATE WINDOW oWnd ON RESIZE ( IF( oWnd<>NIL, oWnd:SETSIZE(oDlg:nWidth,oDlg:nHeight+29), ));
聽 聽 聽 聽 ON INIT (LaBarra(oWnd,oDlg,oBrw,oBrx,oBry),oBrw:SetFocus()) VALID Cierra()

聽 聽 oFont:END()
聽 聽 oIcono:END()

聽 聽 memoryflush() 聽 <--- aqui

RETURN (NIL)
SkyPe: armando.lagunas@hotmail.com

Mail: armando.lagunas@gmail.com
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Mi App se cuelga
Posted: Thu Nov 12, 2015 04:55 PM

Armando t铆ens un LOOPING WHILE... ENDDO en este codigo?

Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Mi App se cuelga
Posted: Thu Nov 12, 2015 06:08 PM
Tocayo:

En este momento voy de salida, en cuanto regrese pruebo tu sugerencia.



Karihna:

Dentro del c贸digo mostrado no hay alg煤n WHILE, existe uno antes del c贸digo mostrado,
es cuando abro las tablas y paso una de ellas a dos arrays.

Code (fw): Select all Collapse
聽 聽 聽 聽 DO WHILE ! oRsSol:EOF()
聽 聽 聽 聽 聽 聽 AADD(acSol,oRsSol:Fields("SOL_NOM"):Value)
聽 聽 聽 聽 聽 聽 AADD(anSol,oRsSol:Fields("SOL_SOL"):Value)
聽 聽 聽 聽 聽 聽 oRsSol:MoveNext()
聽 聽 聽 聽 ENDDO


He hecho pruebas poniendo flags (msgInfo()) para ver donde se atora y es dentro del dialogo "BrwCpa"
en el que tengo 3 xBrowse, llega el momento en que ya no muestra el dialogo y tira el error

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Mi App se cuelga
Posted: Thu Nov 12, 2015 07:09 PM
Cambia para:

Code (fw): Select all Collapse
   WHILE( .NOT. oRsSol:EOF() )

      AADD(acSol,oRsSol:Fields("SOL_NOM"):Value)
      AADD(anSol,oRsSol:Fields("SOL_SOL"):Value)

      oRsSol:MoveNext()

      SYSREFRESH()

   ENDDO


Saludos.
Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: Mi App se cuelga
Posted: Sun Nov 15, 2015 04:43 PM

Armando,

驴No te genera un hb_out.log?.

Muchas gracias. Many thanks.



Un saludo, Best regards,



Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producci贸n]



Implementando MSVC 2010, FWH64 y ADO.



Abandonando uso xHarbour y SQLRDD.