Оболочка написала Segmentation fault, ядро — подробности: какой процесс, куда он обратился и в каком коде.
Segmentation fault (segfault) значит, что программа обратилась к памяти, которая ей не принадлежит. Ядро завершает её сигналом SIGSEGV с номером 11, поэтому код — 128 + 11 = 139. В буфер идёт строка:
thumbgen[1046] — имя и PID процесса, segfault at 0 — адрес, к которому он обратился (0 — пустой указатель, частая ошибка в коде), in libc.so.6 — библиотека, в коде которой это случилось. Чинят такую ошибку разработчики, а администратору строка говорит, какая программа упала, когда и повторяется ли падение.
У каждой строки ядра есть уровень важности — от emerg до debug. Ошибка ext4 пишется уровнем crit, убийство процесса OOM killer — err, а segfault — info: падение одной программы ядро считает её личным делом. dmesg -l отбирает строки по уровню.
Ты ищешь упавшие программы командой sudo dmesg -l err,crit. Попадёт ли в вывод строка thumbgen[…]: segfault at 0 …?
-
-Tменяет вид времени в начале строки, а не отбор. Отбирает-l, и уровень у segfault — info. -
Падение одной программы ядро пишет уровнем info. Строку найдёт
sudo dmesg -l info | grep segfaultили простоsudo dmesg | grep segfault.
Строка segfault — уровня info, и -l err,crit её отбрасывает. Ищи падения по слову: sudo dmesg -T | grep segfault.
Главное в шаге
-
segfault at … in …— процесс обратился к чужой памяти; ядро завершило его SIGSEGV, код 139. - В строке segfault — имя и PID процесса, адрес обращения и библиотека, где это случилось.
-
Уровень у segfault — info:
dmesg -l err,critего не покажет.