/ Var / crash konumundan bir kilitlenme dosyasını nasıl okuyabilirim


20

php-fpm üzerimize çöktü ve bir dosyayı terk etti.

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

Bu dosyada bazı bilgiler var, ancak benim peşimdekiler, Base64 kodlu formatta CoreDump adlı bölümde. Kaza anında neyin kaçtığını nasıl okuyabilirim?

Yanıtlar:


18

apport-retraceAraca bir grup alt bağımlılık yüklemek istemiyorsanız , apport formatını ayrı dosyalara paketinden çıkarabilir ve her zamanki gibi sadece CoreDumpçöplüğü kullanabilirsiniz gdb.

  1. apport-unpack systemGeneratedCrashReportPath.crash yourNewUnpackDirectoryHere
  2. cd yourNewUnpackDirectoryHere/
  3. gdb `cat ExecutablePath` CoreDump (Burada tildlere dikkat!)
  4. bt (çıktı gerçek geri izleme)

    Not: apport-unpackBazen, (apport her yerinde ... xD kırık görünüyor) ama coredump ve diğer dosyaları bunları görmezden gelip tüm .crash dosyaları silmek, orada olacak açmak operasyonda kendini kilitlenmesine /var/crashizin vermek amacıyla başka bir yere taşıdıktan sonra sistem orada aynı uygulamalardan yeni çarpışma raporları çıktılamak için.


1
Apport-retrace yüklemek zorunda kalmadan bir cazibe gibi çalıştı , teşekkürler!
greuze

1
@ digital_infinity hayır ?! Kendin gör. Yankı ve kedi arasında büyük bir fark var ...
stamster

2
@stamster Haklısın. Üzgünüm isminde bir dosya olduğunu özledim ExecutablePath. Okuyucunun oradaki çalıştırılabilir yolu doldurması gerektiğini düşündüm.
digital_infinity

15

Denilen bir aracı yoktur apport-retrace.crash dosyaları okur ve tam sembolik yığın iz ya dolgu kendisine izin verir veya çalıştırmak gdb'core kullanarak oturumu. Bir gdb oturumu başlatmak için çalıştırın apport-retrace -g CRASHFILE.crash. İyi bir yığın izlemesi elde etmek için -dbg paketlerinin kurulu olması gerektiğini unutmayın.

Olduğu söyleniyor (PHP konusunda uzman değilim), çökmeye neden olan dosyalarınızdan birinde yazdığınız bir şey olabilir.


4
Doesn t seem to work: # apport-retrace -g _usr_sbin_php5-fpm.1002.crash HATA: Zorunlu alanlardan bir içermiyor rapor dosyası: coredump DistroRelease Paketi ExecutablePath` # grep CoreDump _usr_sbin_php5-fpm.1002.crash CoreDump: base64
user76369

10
Kilitlenme dosyasını düzenleyin ve ExecutableTimestamp altındaki "Package: 0" alanını ekleyin.
DarkNeuron,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.