Vaughn018
Messages postés55Date d'inscriptionmardi 18 novembre 2003StatutMembreDernière intervention14 janvier 2005
-
9 déc. 2003 à 14:49
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
9 déc. 2003 à 17:40
Bonjour,
Mon programme provoque une exception stack overflow, et je ne vois vraiment pas comment réduire l'importance des objets utilisés. J'ai pu isoler la portion de code à l'origine de l'erreur, il s'agit justement du remplissage d'une chaine de caractères de 2000 octets, à l'aide de strcpy et strcat.
Si qqun sait comment alléger la mémoire dans ces cas la... je l'en remercie d'avance.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 9 déc. 2003 à 15:19
2000 octets pourraient provoquer un stack overflow selon ou en est ta stack. strcpy et strcat n'en provoquent jamais si comme le dit vecchio56 ta chaine finit bien par un 0.
BruNews, ciao...
Vaughn018
Messages postés55Date d'inscriptionmardi 18 novembre 2003StatutMembreDernière intervention14 janvier 2005 9 déc. 2003 à 15:27
Oui ma stack doit pas etre vide déjà d'une part, et puis meme en rajoutant les '\0' manquants, toujours rien. J'ai vraiment l'impression de soulager la pile en enlevant des portions par ci par la, auquel cas je pense que j'arrive vraiment à saturation... ce qui me paraît bizarre (la mémoire du logiciel dans lequel s'intègre mon module est peut etre limitante).
Vaughn018
Messages postés55Date d'inscriptionmardi 18 novembre 2003StatutMembreDernière intervention14 janvier 2005 9 déc. 2003 à 15:31
Je réecris pour etre plus clair concernant une des solutions : ya-t-il un moyen de modifier la mémoire allouée par ce logiciel?
Merci bcp de votre aide.
Vaughn018, Siaïeï handler...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Vaughn018
Messages postés55Date d'inscriptionmardi 18 novembre 2003StatutMembreDernière intervention14 janvier 2005 9 déc. 2003 à 15:45
Le programme est un module externe pour un logiciel déjà existant. Je veux dire par la que ce logiciel m'impose peut etre ses restrictions de mémoire? ou alors je me trompe et la pile a rien a voir la dedans...
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 9 déc. 2003 à 15:51
Si tu ecris une dll tu possedes ta propre stack sinon tu utilises celle du prog. Par contre l'espace memoire est toujours celui du prog, donc +- 2 Go accessibles quand tout va bien.
Faut verifier la valeur de ESP en entree de prog.
Valeur en entree dans ton module.
Valeur en entree dans ta fonction critique.
Tu verras ainsi combien est consomme sur la stack.
BruNews, ciao...