web-dev-qa-db-fra.com

Analyse de fichier de vidage de mémoire

Quelles sont toutes les choses que je devrai vérifier lors de l'analyse du fichier core dump? S'il vous plaît dites-moi à partir de zéro.

207
Dew

Vous avez juste besoin d'un fichier binaire (avec les symboles de débogage inclus) identique à celui qui a généré le noyau. Ensuite, vous pouvez exécuter gdb path/to/the/binary path/to/the/core pour le déboguer.

Lors du démarrage, vous pouvez utiliser bt (pour la trace) pour obtenir une trace de la pile à partir du moment de l’incident. Dans la trace, chaque appel de fonction se voit attribuer un numéro. Vous pouvez utiliser frame number (en remplaçant nombre avec le numéro correspondant dans la trace de la pile) pour sélectionner un cadre de pile particulier. Vous pouvez ensuite utiliser list pour voir le code autour de cette fonction et info locals pour voir les variables locales. Vous pouvez également utiliser print name_of_variable (en remplaçant "nom_de_variable" par un nom de variable) pour afficher sa valeur.

En tapant help dans GDB, vous obtiendrez une invite qui vous permettra de voir des commandes supplémentaires.

305
Michael Aaron Safyan

Étapes à suivre pour déboguer Coredump à l'aide de GDB:

Quelques aides génériques:

gdb démarre GDB, sans les fichiers de débogage

programme gdb commence le programme de débogage

noyau du programme gdb noyau de débogage produit par programme

gdb --help Décrire les options de la ligne de commande

1- Recherchez d’abord le répertoire dans lequel le fichier corefile est généré.

2- Ensuite, utilisez la commande _ls -ltr_ dans le répertoire pour trouver le fichier core généré le plus récemment.

3- Pour charger l'utilisation du corefile

chemin binaire gdb de corefile

Cela chargera le corefile.

4- Ensuite, vous pouvez obtenir les informations en utilisant la commande bt. Pour une trace détaillée, utilisez _bt full_.

5- Pour imprimer les variables, utilisez _print variable-name_ ou _p variable-name_

6- Pour obtenir de l'aide sur GDB, utilisez l'option help ou utilisez apropos search-topic

7- Utilisez _frame frame-number_ pour aller au numéro d’image souhaité.

8- Utilisez les commandes _up n_ et _down n_ pour sélectionner les images n images plus haut et les images n images plus basses.

9- Pour arrêter GDB, utilisez quit ou q.

85
Mayank