Як я можу прочитати файл збоїв з / var / crash


20

php-fpm навалився на нас і скинув файл у

/var/crash/_usr_sbin_php5-fpm.1002.crash

У цьому файлі є деяка інформація, але те, що я шукаю, знаходиться у розділі під назвою CoreDump у закодованому форматі base64. Як я можу прочитати, що працювало на момент аварії?

Відповіді:


18

Якщо ви не хочете встановити купу підзалежностей для apport-retraceінструменту, ви можете розпакувати формат аппорту в окремі файли та використовувати лише CoreDumpдамп із gdbзвичайним способом .

  1. apport-unpack systemGeneratedCrashReportPath.crash yourNewUnpackDirectoryHere
  2. cd yourNewUnpackDirectoryHere/
  3. gdb `cat ExecutablePath` CoreDump (зверніть увагу на тильди тут!)
  4. bt (вихід фактичного зворотного сліду)

    Примітка. apport-unpackІноді при аварійному розпакуванні буде виходити з ладу (apport здається зламаним навколо ... xD), але ваш CoreDump та інші файли будуть там, просто проігноруйте його та видаліть усі файли .crash /var/crashпісля того, як ви перемістите їх в інше місце, щоб дозволити система для виведення нових звітів про збої з тих же програм там.


1
Працював як шарм, не вимагаючи встановлення apport-rece , дякую!
мазь

1
@digital_infinity немає ?! Побачте самі. Існує велика різниця між відлунням і котом ...
stamster

2
@stamster Ви праві. Вибачте, що я пропустив, що є файл з ім'ям ExecutablePath. Я думав, що читач повинен там заповнити виконуваний шлях.
digital_infinity

15

Існує інструмент, який називається, apport-retraceякий читає .crash файли і дозволяє вам заповнити його повністю символічним стеком стека або запустити gdbсеанс, використовуючи основний дамп. Щоб розпочати сеанс gdb, запустіть apport-retrace -g CRASHFILE.crash. Зауважте, що вам потрібно встановити пакети -dbg, щоб отримати хороший слід стека.

Якщо говорити (я не фахівець з PHP), це насправді може бути щось, що ви написали в одному зі своїх файлів, що викликає збій.


4
Немає t seem to work: # apport-retrace -g _usr_sbin_php5-fpm.1002.crash ПОМИЛКА: файл звіту не містить одного з обов’язкових полів: CoreDump DistroRelease Package ExecutablePath` # grep CoreDump _usr_sbin_php5-fpm.1002.crash CoreDump: base64
user76369

10
Відредагуйте файл збоїв і додайте поле "Пакет: 0" під ExecutableTimestamp.
DarkNeuron
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.