GNU/Linux >> Znalost Linux >  >> Cent OS

Co jsou zprávy „segfault“ v souboru /var/log/messages

Tento příspěvek vysvětluje, jak analyzovat zprávu segfault v souboru zpráv a identifikovat problém na straně aplikace nebo operačního systému.

Co je to „segfault“?

Chyba segmentace (často zkrácená na segfault) nebo narušení přístupu je chyba způsobená hardwarem s ochranou paměti, aby upozornila operační systém (OS) na narušení přístupu do paměti. Linuxové jádro na to odpoví provedením nějaké nápravné akce, obvykle předá chybu procesu, který se dopouští problému, zasláním signálu jako #11. Procesy mohou v některých případech nainstalovat vlastní obslužnou rutinu signálu, která jim umožní samy se obnovit, ale jinak se používá výchozí obslužná rutina signálu Linux. Segfault obecně způsobí ukončení procesu a vygeneruje výpis jádra se správným nastavením ulimit.

Jak to zkontrolovat?

1. Označit segfault

Segfault obvykle pouze znamená chybu v jednom konkrétním procesu nebo programu. Neznamená to chybu linuxového jádra. Jádro pouze detekuje chybu procesu nebo programu a (na některých architekturách) vypíše informace do protokolu, jak je uvedeno níže:

00

2. Co znamená podrobnosti o této zprávě?

Hodnota RIP je hodnota registru ukazatele instrukce, RSP je hodnota registru ukazatele zásobníku. Chybová hodnota je bitová maska ​​bitů kódu chyby chyby stránky (z arch/x86/mm/fault.c):

10

Zde je definice chybového bitu:

27

Kód chyby 15 je 1111 bit. Konečně můžeme znát význam 1111 následovně:

31

Tato zpráva označuje, že aplikace spouští chybu ochrany, protože se tento proces pokusil zapsat přístup do vyhrazené části paměti v uživatelském režimu.


Cent OS
  1. Proč „/var/log/messages“ hlásí marťanské pakety

  2. Auditované zprávy se zaplňují /var/log/messages

  3. Protokol auditu a soubor zpráv se na CentOS/RHEL neotáčejí

  1. fprintd zaznamenává zprávy do /var/log/messages, i když USEFPRINTD=no v /etc/sysconfig/authconfig (CentOS/RHEL 7)

  2. Změna názvu hostitele se neodráží v /var/log/messages pro CentOS/RHEL

  3. CentOS / RHEL :Jak otočit soubory /var/log/wtmp a /var/log/btmp pomocí logrotate

  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. unix:///var/run/supervisor.sock žádný takový soubor

  3. Systémové protokoly jsou prázdné (/var/log/messages; /var/log/secure; atd.)