Variable en memoire

fcbouan Messages postés 10 Date d'inscription lundi 2 août 2004 Statut Membre Dernière intervention 21 décembre 2004 - 21 déc. 2004 à 10:52
bebert37 Messages postés 38 Date d'inscription jeudi 17 juillet 2003 Statut Membre Dernière intervention 16 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)

merci

5 réponses

fcbouan Messages postés 10 Date d'inscription lundi 2 août 2004 Statut Membre Dernière intervention 21 décembre 2004
21 déc. 2004 à 10:53
j 'ia oublié de préciser je travaille en c
0
plus_plus_fab Messages postés 232 Date d'inscription vendredi 9 janvier 2004 Statut Membre Derniè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 ...
0
bayeto Messages postés 224 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 18 octobre 2010
21 déc. 2004 à 13:23
et si tu t'aide de gdb en précisant -ggdb au compilo? avec le core généré lors du plantage tu pourra tout remonter je crois
0
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
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)...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bebert37 Messages postés 38 Date d'inscription jeudi 17 juillet 2003 Statut Membre Dernière intervention 16 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)
0
Rejoignez-nous