GNU/Linux >> Tutoriels Linux >  >> Cent OS

Que sont les messages "segfault" dans le fichier /var/log/messages

Cet article explique comment analyser le message d'erreur de segmentation dans le fichier de messages et identifier le problème côté application ou système d'exploitation.

Qu'est-ce qu'une "erreur de segmentation" ?

Une erreur de segmentation (souvent abrégée en erreur de segmentation) ou violation d'accès est une erreur déclenchée par le matériel avec protection de la mémoire, pour informer le système d'exploitation (OS) d'une violation d'accès à la mémoire. Le noyau Linux y répondra en effectuant une action corrective, passant généralement la faute au processus incriminé en envoyant au processus un signal comme #11. Les processus peuvent dans certains cas installer un gestionnaire de signal personnalisé, leur permettant de récupérer par eux-mêmes, mais sinon, le gestionnaire de signal par défaut de Linux est utilisé. L'erreur de segmentation entraîne généralement l'arrêt du processus et génère un vidage mémoire avec une configuration ulimit appropriée.

Comment vérifier ?

1. Signifier une erreur de segmentation

Une erreur de segmentation signifie généralement simplement une erreur dans un processus ou un programme particulier. Cela ne signifie pas une erreur du noyau Linux. Le noyau détecte simplement l'erreur du processus ou du programme et (sur certaines architectures) imprime les informations dans le journal comme ci-dessous :

04

2. Que signifie détaille ce message ?

La valeur RIP est la valeur du registre de pointeur d'instruction, le RSP est la valeur du registre de pointeur de pile. La valeur d'erreur est un masque binaire de bits de code d'erreur de défaut de page (de arch/x86/mm/fault.c) :

13

Voici la définition du bit d'erreur :

21

Le code d'erreur 15 est de 1111 bits. Enfin, nous pouvons connaître la signification de 1111 comme suit :

35

Ce message indique que l'application déclenche une erreur de protection car ce processus a tenté d'accéder en écriture à une section réservée de la mémoire en mode utilisateur.


Cent OS
  1. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  2. Espace sur le disque en cours d'exécution faible Journalisation des erreurs /var/log/cups/error.log ?

  3. Comment modifier l'autorisation par défaut de /var/log/messages dans CentOS/RHEL

  4. Comment changer le chemin du fichier journal auditd /var/log/audit/audit.log

  5. Le /var/log/messages est vide, tout comme les fichiers journaux pivotés tels que messages.0, messages.1

Pourquoi "/var/log/messages" signale-t-il des paquets martiens

Les messages auditd se remplissent /var/log/messages

Le journal d'audit et le fichier de messages ne tournent pas sur CentOS/RHEL

fprintd enregistre les messages dans /var/log/messages même si USEFPRINTD=no dans /etc/sysconfig/authconfig (CentOS/RHEL 7)

Le changement de nom d'hôte ne se reflète pas dans /var/log/messages pour CentOS/RHEL

Les journaux système sont vides (/var/log/messages ; /var/log/secure ; etc.)