Назад | Перейти на главную страницу

Открытие дампа linux-crashdump со сбоем?

Итак, я пытался отладить странный прерывистый сбой ядра для сервера под управлением Ubuntu-Server 16.04, из-за которого я был в тупике целую вечность, поэтому я установил и настроил linux-crashdump после Рецепт аварийного дампа Ubuntu wiki.

Дождавшись, пока проблема снова поднимется, linux-crashdump сделал свое дело и сгенерировал аварийный дамп, но теперь я не могу понять, как его использовать!

В руководстве Ubuntu предусмотрено два метода их просмотра: либо с помощью crash или apport-retrace, но ни один из этих методов не работает, как описано.

apport-retrace просто возвращает:

ERROR: report file does not contain the required fields

Между тем для crash, Я загрузил соответствующий образ с отладочной информацией, используя apt-get install linux-image-$(uname -r)-dbgsym как рекомендуется, перед запуском следующей команды:

crash /usr/lib/debug/boot/vmlinux-4.4.0-93-generic /var/crash/linux-image-4.4.0-93-generic-201709131146.crash

Однако это приводит к ошибке:

crash: linux-image-4.4.0-93-generic-201709131146.crash: not a supported file format

Как правильно смотреть linux-crashdump свалки сейчас? Я пропускаю шаги, которых нет в руководстве?

Итак, я понял это; кажется, что на самом деле мясо аварийной свалки не в .crash файл вообще, но вместо этого находится внутри папки.

Соответствующее содержание моих /var/crash папка поэтому выглядит так:

/var/crash/
    201709131146/
        dmesg.201709131146
        dump.201709131146
    linux-image-4.4.0-93-generic-201709131146.crash

Так что мне нужно было запустить:

crash /usr/lib/debug/boot/vmlinux-4.4.0-93-generic /var/crash/201709131146/dump.201709131146

Это (в конечном итоге) дало мне полезную трассировку стека и другие подробности о том, что пошло не так.

Вам нужно использовать apport-unpack. Затем gdb и backtrace. В Интернете есть хорошие примеры использования apport-unpack.