Si vous regardez la page Core Man, elle définit comme un vidage de base comme «un fichier contenant une image de la mémoire du processus au moment de la résiliation. Cette image peut être utilisée dans un débogueur (E.g.) GDB pour inspecter l'état du programme au moment où il s'est terminé ».
En termes simples, un fichier de vidage de base est un fichier qui contient des informations mémoire sur un processus lorsque le processus spécifique se termine.
Il existe diverses raisons pour lesquelles les processus peuvent s'écraser et créer un fichier de vidage de base. Ce tutoriel vous montrera comment utiliser GDB pour afficher le fichier de vidage de base et imprimer la trace de pile.
Étape 1: Obtenez un dépotoir central
Avant de commencer à analyser le fichier de vidage de base, nous devons en générer un. Pour ce faire, nous pouvons utiliser un programme de buggy.
Considérez le code buggy.C ci-dessous:
#inclureDans le code ci-dessus, nous créons une boucle pour 0 et 10. Si la valeur de I est de 5, nous référentes un mauvais pointeur, provoquant ainsi Segfault et créant un dépotoir de base.
Clang -g bugg.c -o buggyMaintenant, exécutez le code comme:
./petit chariotLe code ci-dessus donnera la sortie comme suit:
I est 0Étape 2: Décharge de noyau ouvert avec GDB
Pour ouvrir le fichier de vidage de noyau avec GDB, utilisez la commande GDB et passez le chemin à l'exécutable et au core vidage comme paramètres comme:
$ GDB Buggy CoreCela lancera GDB et inclura le vidage central comme indiqué dans la sortie ci-dessous:
Pour afficher la trace de pile du fichier core, utilisez la commande backtrace:
(GDB) BacktraceConclusion
Ce tutoriel vous a montré comment utiliser GDB pour ouvrir un fichier de vidage de base et obtenir la trace de pile.