Un fichier core est crée lors d'une faute grave, comme une violation d'espace mémoire. Avec gdb
, on peut savoir la valeur des variables et des données à l'instant précis de l'erreur.
Pour valider la création des fichiers core, entrer dans le fichier .bashrc
la ligne :
ulimit -c unlimited
Pour utiliser ce fichier core, il faut avoir compilé le programme avec l'option de déboguage, puis lancé gdb
en indiquant le nom du programme suivit du nom du fichier core :
gdb bogue core
La commande backtrace
affiche la pile d'appels au moment où le problème est survenu. La première fonction affichée (#0) est aussi la dernière appelée au moment de l'erreur (celles qui suivent ont été appelées dans l'ordre chronologiquement). On peut donc savoir dans quelle fonction se situe l'erreur. La commande frame
permet d'accéder à l'appel correspondant. Par exemple :
frame 2
accède à la fonction correspondant au numéro 2 (#2). Si le problème se situe en amont (dans une fonction précédente), utiliser la commande up
pour remonter la pile d'appels.