Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Stack Overflow (https://www.clubdelphi.com/foros/showthread.php?t=12122)

agonzalez 06-07-2004 19:03:38

Stack Overflow
 
mi aplicacion presenta un error de Stack Overflow, leyendo en los mensages anteriores del foro me doy cuenta que se presenta cuando hay llamadas recursivas a una funcion. Este es mi caso, pero mi recurcion si tiene fin despues de procesar 11456 nodos de un arbol AVL.
En la pestaña Linker de las propiedades del proyecto hay una opcion Memory Sizes, creo que si aumento el Max Stack Size me permite compilar mi aplicacion, Es eso cierto? y si actualmente esta en $00100000, en cuanto lo debo colocar?

De ante mano muchas Gracias a todos

delphi.com.ar 06-07-2004 19:07:22

Cita:

Empezado por agonzalez
mi aplicacion presenta un error de Stack Overflow, leyendo en los mensages anteriores del foro me doy cuenta que se presenta cuando hay llamadas recursivas a una funcion.

Una de las formas mas comunes en la que se produce este error es de esta forma, pero no es la única.

Cita:

Empezado por agonzalez
Este es mi caso, pero mi recurcion si tiene fin despues de procesar 11456 nodos de un arbol AVL.
En la pestaña Linker de las propiedades del proyecto hay una opcion Memory Sizes, creo que si aumento el Max Stack Size me permite compilar mi aplicacion, Es eso cierto? y si actualmente esta en $00100000, en cuanto lo debo colocar?

En tu caso tendría que funcionar sin problemas... ¿Estas seguro que no se llama recursivamente de forma infinita? ¿Porque no llevas la cuenta de los ingresos al procedimiento para poder saberlo?

Saludos!

agonzalez 06-07-2004 20:56:24

Gracias Federico

Ya lo depure, pero no totalmente paso por paso, con lo tedioso que es depurar funciones recursivas y 11456 nodos son una cantidad significativa, me ayude escribiendo en una BD y aproximamente en un 75% del árbol se cuelga.

Pero ya modifique el Memory Sizes a $00400000 y me funciona sin ningún problema, creo que debí ensayar antes de preguntar, pero con lo alcanzado que estoy en este proyecto no tengo mucho tiempo para experimentos que no se su resultado y me pueden atrasar mas mi entrega.

mil gracias por su ayuda

delphi.com.ar 07-07-2004 18:40:28

Solo un simple comentario: Recuerda que la pila no solo se utiliza para almacenar la referencia de las llamadas a las funciones, tambien se utiliza para guardar los punteros a los parámetros de las funciones, así como para almacenar momentaneamente algun valor de uso inmediato para un acceso rápido. Por eso si la función recursiva tiene muchos parámetros, la pila se agotará mucho antes que si tiene pocos parámetros.

Saludos!

Vicente Ivan 24-11-2006 22:27:36

bueno soy nuevo en el club , y lo que ma ha hecho entrar es precisamente el stack overflow , con la diferencia es que ya le aumente el numero en el memory size de 1 a 5 y no me funciono , ya he depurado todas mis formas una por una , y aun persiste el problema,,,,,, lo unico es que el mensaje aparece cuando mi ejecutable pasa de 10,504 kb , alguien me podra dar otra luz, o indicarme que mas puedo hacer.

Adicional, Estoy Utilizando archivos Dbf , delphi 2005 y advantage 7.1 , la compuadora de desarrollo bajo WinXP Sp2

Gracias

Vicente Ivan
Panamá Rep. de Panamá

delphi.com.ar 08-12-2006 22:26:46

Puedes intentar debugear tu aplicación y revisar el CallStack una vez producido el error.

Saludos!


La franja horaria es GMT +2. Ahora son las 21:56:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi