GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Was sind „segfault“-Meldungen in der Datei /var/log/messages

In diesem Beitrag wird erläutert, wie die Segfault-Meldung in der Meldungsdatei analysiert und das Problem auf der Anwendungs- oder Betriebssystemseite identifiziert wird.

Was ist „segfault“?

Ein Segmentierungsfehler (oft als Segfault abgekürzt) oder eine Zugriffsverletzung ist ein Fehler, der von Hardware mit Speicherschutz ausgelöst wird, um das Betriebssystem (OS) über eine Speicherzugriffsverletzung zu informieren. Der Linux-Kernel wird darauf reagieren, indem er einige Korrekturmaßnahmen durchführt und den Fehler im Allgemeinen an den störenden Prozess weiterleitet, indem er dem Prozess ein Signal wie #11 sendet. Prozesse können in einigen Fällen einen benutzerdefinierten Signalhandler installieren, der es ihnen ermöglicht, sich selbst wiederherzustellen, aber ansonsten wird der Standard-Signalhandler von Linux verwendet. Der segfault bewirkt im Allgemeinen, dass der Prozess beendet wird, und generiert einen Core-Dump mit korrekter ulimit-Einstellung.

Wie überprüfe ich?

1. Segfault bedeuten

Ein Segfault weist normalerweise nur auf einen Fehler in einem bestimmten Prozess oder Programm hin. Es bedeutet keinen Fehler des Linux-Kernels. Der Kernel erkennt einfach den Fehler des Prozesses oder Programms und gibt (bei einigen Architekturen) die Informationen wie folgt in das Protokoll aus:

08

2. Was bedeutet Details dieser Nachricht?

Der RIP-Wert ist der Befehlszeiger-Registerwert, der RSP ist der Stapelzeiger-Registerwert. Der Fehlerwert ist eine Bitmaske von Fehlercodebits für Seitenfehler (aus arch/x86/mm/fault.c):

17

Hier ist die Definition des Fehlerbits:

25

Der Fehlercode 15 ist 1111 Bit. Schließlich können wir die Bedeutung von 1111 wie folgt erkennen:

39

Diese Meldung weist darauf hin, dass die Anwendung eine Schutzverletzung auslöst, da dieser Prozess versucht hat, im Benutzermodus auf einen reservierten Speicherabschnitt zuzugreifen.


Cent OS
  1. Unterschied zwischen /var/log/messages, /var/log/syslog und /var/log/kern.log?

  2. Warum meldet „/var/log/messages“ Marspakete?

  3. Auditd-Meldungen füllen /var/log/messages

  4. fprintd protokolliert Nachrichten in /var/log/messages, selbst wenn USEFPRINTD=no in /etc/sysconfig/authconfig (CentOS/RHEL 7)

  5. Die Änderung des Hostnamens spiegelt sich nicht in /var/log/messages für CentOS/RHEL wider

So ändern Sie den Pfad der auditd-Protokolldatei /var/log/audit/audit.log

Audit-Protokoll und Meldungsdatei rotieren nicht unter CentOS/RHEL

/var/log/messages ist leer, ebenso wie die rotierten Protokolldateien wie messages.0, messages.1

Systemprotokolldatei /var/log/messages wird automatisch gelöscht oder gekürzt (CentOS/RHEL)

Das System zeigte kontinuierlich die Fehlermeldung von „avahi-demon“ in /var/log/messages an

Systemprotokolle sind leer (/var/log/messages; /var/log/secure; etc)