acerca de lo errores que manda el stack

Post Reply
Gerardo Farfan
Posts: 52
Joined: Fri Oct 28, 2005 3:42 pm
Location: Mexico, D.F.

acerca de lo errores que manda el stack

Post by Gerardo Farfan »

existe algun lugar en donde venga una explicacion de los errores que manda el stack, por ejemplo

(b)WNDMAIN (0) Unrecoverable error 650: Processor stack fault

este error me lo envia cuando agrego una funcion, mas sin embargo la quito del programa y no manda dicho error. :?

de antemano muchas gracias.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Gerardo,

Que valores de heapsize y de stacksize estas usando en el fichero LNK ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
Gerardo Farfan
Posts: 52
Joined: Fri Oct 28, 2005 3:42 pm
Location: Mexico, D.F.

Post by Gerardo Farfan »

Antonio, estoy usando en el stacksize 9500 y en el heapsize 2048

los cuales he estado incrementando pero aun asi persiste este error
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Prueba a incrementar el stacksize de 1000 en 1000 hasta que desaparezca el error. Si no lo consiguieses, prueba a decrementarlo de 1000 en 1000.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Gerardo Farfan
Posts: 52
Joined: Fri Oct 28, 2005 3:42 pm
Location: Mexico, D.F.

Post by Gerardo Farfan »

y cual seria (en caso de) el tope minimo que soporta???
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

En la documentación de FiveWin está explicada la distribución de la memoria en los 64Ks que usa Clipper:

<------------------------------------------- 64 Ks ---------------------------------------------->

DATA,_BSS (SYMP) | STACK_C | HEAP_C | CLIPPER STACK | CLIPPER STATICS
<----------------- initial DG size --------------->

En el fichero LNK especificas el valor de STACK_C y de HEAP_C. Cuanto más crezcan menos tamaño le quedará a Clipper para el stack (la pila) de su máquina virtual.

Cuantas más variables estáticas uses, mas tamaño le quitas al stack de la maquina virtual de Clipper.

Si el valor de STACK_C disminuye, no podrás ejecutar muchas llamadas a funciones desde otras funciones: a() llama a b() que llama a c() que llama a d(), etc.

Los GETs de Windows consumen HEAP_C, luego si usas muchos GETs simultaneamente, necesitas aumentar HEAP_C

Como ves, se trata de encontrar un equilibrio entre todos esos valores.

Al pasar tu aplicación a 32 bits usando FWH y Harbour/xHarbour desaparece todo este problema :-)
Last edited by Antonio Linares on Tue Aug 07, 2007 11:32 pm, edited 3 times in total.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Gerardo Farfan
Posts: 52
Joined: Fri Oct 28, 2005 3:42 pm
Location: Mexico, D.F.

Post by Gerardo Farfan »

Gracias Antonio, lo checo
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

He editado mi post anterior con la explicación. Espero que te sea de utilidad
regards, saludos

Antonio Linares
www.fivetechsoft.com
Gerardo Farfan
Posts: 52
Joined: Fri Oct 28, 2005 3:42 pm
Location: Mexico, D.F.

Post by Gerardo Farfan »

Gracias Antonio.

Una pregunta mas, al migrar la aplicacion a FwH y Harbour, es necesario hacer adecuaciones al codigo o este pasa sin ningun cambio???
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Practicamente pasas a FWH sin ningún cambio
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply