fcbouan
Messages postés10Date d'inscriptionlundi 2 août 2004StatutMembreDernière intervention21 décembre 2004
-
21 déc. 2004 à 10:52
bebert37
Messages postés38Date d'inscriptionjeudi 17 juillet 2003StatutMembreDernière intervention16 février 2005
-
21 déc. 2004 à 16:18
voila,
j'aimerai trouver une méthode pour retrouver en memoire une variable ( ex pointeur sur une liste chainee) quand mon programme plante ( c sous linux debian).
Le truc serais de reprendre une update dans ma base de donnee mysql quand l'appli redémarre, comme c'est des tarifs d'appels :/.
Je ne sais pas si c jouable mettre par ex l'adresse memoire dans un fichier , y a t il des bonnes méthodes ? ( apparemetn c pas torp souhatable j ecrive/lise dans un fichier mes donnee a la voléee avnt les update pour quest perf c mieux avoir en memoire)
plus_plus_fab
Messages postés232Date d'inscriptionvendredi 9 janvier 2004StatutMembreDernière intervention 8 janvier 2005 21 déc. 2004 à 13:23
quand ton programme plante, le noyau envoi un signal (SIGSEGV par exemple ), et provoque la destruction du processus et de son espace d'adressage. L'espace d'adressage du processus n'etant plus de ce monde, tu as beau avoir l'adresse d'une variable, cela ne te servira à rien.
Sauf si au plantage, ton système te génère un core qui contient notament une copie de l'espace d'adressage (au moment du plantage). Tu peux donc retrouver une variable dont tu avais l'adresse avec le core je pense.
Ceci dit je ne comprend rien à ce que tu veux faire ...
cs_Nebula
Messages postés787Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 7 juin 20072 21 déc. 2004 à 13:54
Faut pas utiliser çà pour bidouiller la reprise des mises à jour, faut débugger ton code (s'il plante y'a une raison, et si tu le lances avec GDB tu sauras où il a planté, faudra chercher la raison ensuite)...
Vous n’avez pas trouvé la réponse que vous recherchez ?
bebert37
Messages postés38Date d'inscriptionjeudi 17 juillet 2003StatutMembreDernière intervention16 février 2005 21 déc. 2004 à 16:18
entièrement d'accord avec Nebula. C'est ton appli qu'il faut debugger.
Si vraimant tu veux recupèrer des données, tu peux toujours détourner le signal SIGSEGV (je sais pas si on à le droit ??) et avant que ça plante tu remplis un fichier texte les données que tu veux conservé. (C'est vraimant pas beau et comme dit plus_plus_fab ) regarde plutot le fichier core
Ce sont les tonneaux vides et les hommes pleins qui font le plus de bruit
:big)