Làm cách nào tôi có thể đọc tệp sự cố từ / var / crash


20

php-fpm đã đánh sập chúng tôi và đổ một tập tin vào

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

Có một số thông tin trong tệp đó, nhưng những gì tôi theo sau nằm trong phần có tên CoreDump theo định dạng được mã hóa base64. Làm thế nào tôi có thể đọc những gì đang chạy tại thời điểm xảy ra sự cố?

Câu trả lời:


18

Trong trường hợp nếu bạn không muốn cài đặt một loạt các phụ thuộc phụ cho apport-retracecông cụ, bạn có thể giải nén định dạng apport thành các tệp riêng biệt và chỉ sử dụng CoreDumpkết xuất với gdbnhư bình thường.

  1. apport-unpack systemGeneratedCrashReportPath.crash yourNewUnpackDirectoryHere
  2. cd yourNewUnpackDirectoryHere/
  3. gdb `cat ExecutablePath` CoreDump (chú ý đến dấu ngã ở đây!)
  4. bt (đầu ra dấu vết thực tế)

    Lưu ý: apport-unpackđôi khi sẽ tự sập khi hoạt động giải nén (apport dường như bị hỏng toàn bộ ... xD), nhưng CoreDump của bạn và các tệp khác sẽ ở đó, chỉ cần bỏ qua nó và xóa tất cả các tệp .crash /var/crashsau khi bạn di chuyển chúng đi nơi khác để cho phép hệ thống để xuất báo cáo sự cố mới từ các ứng dụng tương tự ở đó.


1
Làm việc như một cơ duyên, mà không cần phải cài đặt apport-lấy , cảm ơn!
chào mừng

1
@digital_infinity không?! Xem nó cho chính mình. Có một sự khác biệt lớn giữa tiếng vang và tiếng mèo ...
stamster

2
@stamster Bạn nói đúng. Xin lỗi tôi đã bỏ lỡ rằng có một tập tin với tên ExecutablePath. Tôi nghĩ rằng người đọc phải điền vào đường dẫn thực thi ở đó.
digital_infinity

15

Có một công cụ được gọi là apport-retraceđọc các tệp .crash và cho phép bạn điền nó với dấu vết ngăn xếp đầy đủ biểu tượng hoặc chạy gdbphiên bằng cách sử dụng kết xuất lõi. Để bắt đầu một phiên gdb, hãy chạy apport-retrace -g CRASHFILE.crash. Lưu ý rằng bạn cần cài đặt các gói -dbg để có được dấu vết ngăn xếp tốt.

Điều đó đang được nói (tôi không phải là một chuyên gia về PHP), nó thực sự có thể là một cái gì đó mà bạn đã viết trong một trong các tệp của bạn gây ra sự cố.


4
Doesn t seem to work: # apport-retrace -g _usr_sbin_php5-fpm.1002.crash LỖI: Báo cáo tập tin không chứa một trong những trường bắt buộc: coredump DistroRelease Gói ExecutablePath` # grep CoreDump _usr_sbin_php5-fpm.1002.crash CoreDump: base64
user76369

10
Chỉnh sửa tệp sự cố và thêm trường "Gói: 0" trong ExecutableTimestamp.
DarkNeuron
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.