2012-11-09 7 views
19

Son zamanlarda yoğun program/paket yüklemesinden geçiyorum, bu nedenle yeni yüklenen programlardan (veya eski programlardan) hangisinin core dosyasının görünümüne neden olduğundan emin olamadım evimdeki klasörde. Bu bir sunucu, bu yüzden makinede olası herhangi bir istikrarsızlık kaynağını bulmalıyım.Hangi programın bir çekirdek döküm dosyasına neden olduğunu bulun

+1

FreeBSD'de bu benim için çalışıyor, dmesg | çok yakın zamanda meydana gelen kuyruk -n 20' – SIFE

+0

@SIFE. – Benj

+0

@Benj Bunu söylemeyi unutma. – SIFE

cevap

30

Sadece bunları tanımlamak için file programını kullanabilirsiniz:

Örn

# file /var/core/core 
/var/core/core:  ELF 64-bit MSB core file SPARCV9 Version 1, from 'crs_stat.bin' 
+2

Bazen, "dosya" nın herhangi bir nedenle tanımlayamadığı çekirdek dosyalarım vardı; bu durumlarda, çekirdek dosyasındaki dizelerin çıktısının son satırının genellikle yürütülebilir dosya yolunu içerebileceği gerçeğine yardımcı olabilir. Örneğin. "dizeleri/yol// corefile | tail -n 1" genellikle çalışır veya son birkaç satıra bakar. – jsegal

+3

@jsegal: İyi bulmak, ama ihtiyacım vardı dizeleri çekirdek | grep ^/| '' '' bulduğunda kuyruk '' '' '' '' '' '' '' çok fazla program başlığı bölümü'' – Tino

0

Eğer core.pid ve çalıştırma gdb çekirdek

0

core.pid dizine gidebilirsiniz Çoğunlukla, çekirdek dosyasındaki dosya programı, kabul edilen yanıtta (Benj'in cevabından kod) @Benj tarafından açıklandığı gibi hatalı çalıştırılabilir dosyayı gösterecektir:

# file /var/core/core 
/var/core/core:  ELF 64-bit MSB core file SPARCV9 Version 1, from 'crs_stat.bin' 

Ancak, bazen bir "çok fazla programı başlık bölümleri" hakkında şikayette alabilirsiniz:

  • Kuyruk son birkaç dizeleri: Bu durumda

    core.some-lib.nnnn.nnnn: ELF 64-bit LSB core file x86-64, version 1 (SYSV), too many program header sections (1850) 
    

    , bazı alternatifler deneyebilirsiniz strings core.some-lib.nnnn.nnnn | tail -50

  • Kullanım gdb kendisi: corefile (app benim için yaklaşık 25 geri döndü) Core was generated by '/usr/local/bin/some-executable'
  • : gdb -c core.some-lib.nnnn.nnnn Bu genellikle size böyle bir şey söyleyecektir
İlgili konular