Vous pouvez également utiliser un vidage de mémoire, puis l'examiner avec gdb. Pour obtenir des informations utiles, vous devez également compiler avec le drapeau -g
.
Chaque fois que vous obtenez le message:
Segmentation fault (core dumped)
un fichier de base est écrit dans votre répertoire courant. Et vous pouvez l'examiner avec la commande
gdb your_program core_file
Le fichier contient l'état de la mémoire lorsque le programme s'est bloqué. Un core dump peut être utile lors du déploiement de votre logiciel.
Assurez-vous que votre système ne définit pas la taille du fichier de vidage de base à zéro. Vous pouvez le régler à un nombre illimité avec:
ulimit -c unlimited
Attention cependant! que les vidages de base peuvent devenir énormes.
Aucun gcc/gdb ne peut pas. Vous pouvez trouver _where_ le segfault survenu, mais l'erreur réelle pourrait être à un endroit totalement différent. –