Page 1 sur 1
Stack overflow ??
Publié : mer. 14/sept./2005 16:31
par Backup
Stack overflow ?? c'est quoi ce message d'erreur un debordement de pile ?
ça viens de quoi au juste ?

Publié : mer. 14/sept./2005 16:36
par djes
Quand un programme est chargé en mémoire, un espace est réservé pour la pile, qui sert à stocker les données temporaires, comme par exemple l'adresse de retour des procédures et les variables transmises en paramètre. Si tu utilises trop de variables ou d'appels de procédure sans jamais "revenir" (pour une procédure récursive par exemple), tu risques le stack overflow ou dépassement de pile.
Publié : mer. 14/sept./2005 17:58
par Backup
ben ça va pas etre coton a resoudre mon affaire !

Publié : mer. 14/sept./2005 18:20
par djes
Tu fais une procédure récursive?
Publié : mer. 14/sept./2005 19:02
par Progi1984
A la place de ta pile, prends une batterie
OK: Je sors.......
Publié : mer. 14/sept./2005 19:27
par Backup
arf ! le problem viens de purebasic !!
dans mon programme puregolo ,
lorsque tu sauvegarde le listing (au format txt)
et que avant tu profite du requester pour effacer un autre fichier
ben au prochain chargement de listing (format txt) puregolo
tu run pour execution ; et boom plantage avec redemarrage de la machine !!! "stack overflow !!"
alors que ne n'utilise pas de procedure recursive !
que si tu charge 20 fois puis execution un fichiers puregolo pas de plantage
si tu charge et tu run puis tu sauve , autant de fois que tu veux , pas de plantage !
c'est juste le fait de profiter du requester de sauvegarde , pour faire autre chose que sauvegarder , par exemple effacer un fichier , avant de sauvegarder celui en cours , qui doit chambouler la pile !
parcequ'apres ça plant a l'execution de mon application !
je sais pas si j'ai ete clair !

Publié : mer. 14/sept./2005 20:05
par djes
Si tu as été très clair : ton programme écrase une partie de la mémoire. Ca peut venir de toi (genre lecture/écriture de datas hors espace réservé, d'écriture dans un tableau hors indice, de lecture de fichiers dans un buffer trop petit, appel d'une fonction sans sa contrepartie, etc.), ou de purebasic qui ne restaure pas correctement la mémoire après appel d'une fonction.
Publié : mer. 14/sept./2005 22:56
par Backup
de lecture de fichiers dans un buffer trop petit,
peut etre ça car je charge a la volé les lignes de code (de text) dans mon editeur sans avoir preformaté celui-ci (d'ailleurs le faut t'il ? )
