Précédent   Forum du club des développeurs et IT Pro > C et C++ > C > Débuter
Débuter Forum d'entraide pour débuter en langage C. Avant de poster -> FAQ C
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 16/01/2013, 15h48   #1
flatron14
Invité régulier
 
Inscription : janvier 2013
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2013
Messages : 5
Points : 9
Points : 9
Par défaut analyse coredump d'une autre machine

Bonjour,

J'ai un gros doute concernant l'analyse de coredump sous linux/unix.
Mon programme plante et génère un coredump sur une machine de production, cette machine n'a pas de gdb et je ne pas l'installer

J'essaie donc d'analyser ce core sur une machine ou il y a un gdb (c'est la machine ou j'ai compilé mon programme), mais cette machine n'a pas les mêmes versions de lib (libc, libpthread, etc ...).

Faut-il avoir exactement les mêmes version de lib pour pouvoir analyser le dump provenant d'une autre machine?

PS: J'ai essayé de copier les lib de la machine de production dans un coin et de fixer le LD_LIBRARY_PATH mais j'ai pas l'impression que ca change grand chose...

Merci pour votre aide.
flatron14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2013, 00h58   #2
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 610
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 610
Points : 11 068
Points : 11 068
Bonsoir,

Citation:
Envoyé par flatron14 Voir le message
Faut-il avoir exactement les mêmes version de lib pour pouvoir analyser le dump provenant d'une autre machine?
Oui, puisque tu analyses directement le binaire et que le crash peut en outre se produire dans l'une de ces bibliothèques.

Il serait peut-être plus intéressant de monter un NFS de ta machine de prod vers ton poste de travail pour pouvoir appeler GDB sans avoir à l'installer. Sinon, si tu disposes d'un peu de temps et de suffisamment d'espace disque, tu peux essayer de cloner le contenu du disque de ta machine de prod' vers un répertoire, voire faire une image disque avec dd à travers le réseau et monter cette image.

Tu pourras alors facilement y ajouter des fichiers et travailler tranquillement depuis ton poste.
Obsidian est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/01/2013, 09h17   #3
flatron14
Invité régulier
 
Inscription : janvier 2013
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2013
Messages : 5
Points : 9
Points : 9
Merci pour ta réponse, je vais ce que je peux faire.
flatron14 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2013, 09h32   #4
flatron14
Invité régulier
 
Inscription : janvier 2013
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2013
Messages : 5
Points : 9
Points : 9
Si ça peu dépanner un autre j'ai trouvé une solution assez "light":

1) Faire un ldd de son programme pour avoir la liste des dépendances

2) Copier ces libraries sur l'autre machine dans un répertoire temporaire (attention il fait la même architecture, c-a-d que si les lib sont dans /lib il faudra les copier dans /tmp/lib)

3) Copier le binaire et le core dans /tmp puis lancer gdb (sans options)

4) Indiquer ou se trouve les libs: set solib-absolute-prefix /tmp
5) Indiquer ou se trouve le binaire: file /tmp/toto
6) Indiquer ou se trouve le core: core-file /tmp/core.28163

et chez mois ça fonctionne bien
flatron14 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h27.


 
 
 
 
Partenaires

Hébergement Web