php-fpm обрушился на нас и выкинул файл в
/var/crash/_usr_sbin_php5-fpm.1002.crash
В этом файле есть некоторая информация, но то, что мне нужно, это раздел CoreDump в формате base64. Как я могу прочитать, что работало во время аварии?
В случае, если вы не хотите устанавливать связку зависимостей для apport-retrace
инструмента, вы можете распаковать формат apport в отдельные файлы и использовать только CoreDump
дамп gdb
как обычно.
apport-unpack systemGeneratedCrashReportPath.crash yourNewUnpackDirectoryHere
cd yourNewUnpackDirectoryHere/
gdb `cat ExecutablePath` CoreDump
(обратите внимание на тильды здесь!)bt
(вывод фактической обратной трассировки)
Примечание: apport-unpack
иногда происходит сбой при распаковке (apport кажется разбитым вокруг ... xD), но ваш CoreDump и другие файлы будут там, просто проигнорируйте его и удалите все файлы .crash /var/crash
после их перемещения в другое место, чтобы Система для вывода новых отчетов о сбоях из тех же приложений там.
ExecutablePath
. Я думал, что читатель должен заполнить путь к исполняемому файлу там.Существует инструмент под названием,
apport-retrace
который читает файлы .crash и позволяет вам либо заполнить его полностью символической трассировкой стека, либо запуститьgdb
сеанс с использованием дампа ядра. Чтобы начать сеанс GDB, запуститеapport-retrace -g CRASHFILE.crash
. Обратите внимание, что вам нужно установить пакеты -dbg, чтобы получить хорошую трассировку стека.При этом (я не эксперт по PHP), это может быть то, что вы написали в одном из ваших файлов, что вызывает сбой.
источник
t seem to work:
# apport-retrace -g _usr_sbin_php5-fpm.1002.crash ОШИБКА: файл отчета не содержит одно из обязательных полей: Пакет CoreDump DistroRelease ExecutablePath`# grep CoreDump _usr_sbin_php5-fpm.1002.crash CoreDump: base64