2013-04-16 36 views
27

Çekirdek dökümü dosyalarının varsayılan konumunu değiştirmek istiyorum, böylece bir çekirdek dökümü her üretildiğinde, bu dizine gider. Ayrıca, dökümü dosya adıyla kaydetme olasılığı vardır. Bu konumda dosya çöktü?Çekirdek dökümün konumunu değiştirme

+0

"ne oldu" sürümü: http://stackoverflow.com/questions/2065912/core-dumped-but-core-file-is- geçerli olmayan dizin? 'Tee' hile için –

cevap

44

Evet, öyle. Çekirdek dosyasını oluşturmak için kullanılan yol adını tanımlamak için /proc/sys/kernel/core_pattern'u değiştirebilirsiniz. Daha fazlası için man core

örnek bkz: gelecekteki tüm çekirdek /tmp üretilecek ve kabul edilen yanıt yönergeleri izleyerek önce

+12

+1;) Ayrıca' sysctl' olduğunu unutmayın. Sonra 'sysctl -w kernel.core_pattern = '/ tmp/core_% e.% P'' – hek2mgl

+0

Bu CentOS 7 üzerinde çalışmıyor. – Ali

+1

@Ali -" çalışmıyor "yararlı bir sorun açıklaması değildir. [Core manpage] 'de (http: //www.unix.) Mermi noktalarını kontrol etmemeli.com/man-page/centos/5/core /) ve eğer problem devam ederse, yeni bir soru sorun, yorumlar yeni problemleri tartışacak yer değil. Bu bilgi için – mata

23

core_[program].[pid] adlandırılacak döker

echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern 

neden olur, bu iyi olabilir Redhat abrt sisteminin kullanımda olup olmadığını görmek için /proc/sys/kernel/core_pattern içeriğini kontrol etme fikri.

-> cat /proc/sys/kernel/core_pattern 
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e 

o kullanımda ise, o zaman zaten sen bunu geçersiz önce anlamak isteyeyim çekirdek dosyalarını yönetmek için oldukça geniş düzeni var. ABT Özetle

:

  1. burada çekirdek dosyaları koyar: /var/spool/abrt/
  2. başarısız işlem hakkında ek bilgi ile corefile arttırır komuta abrt-gui
  3. ile başlatılır bir GUI vardır.
  4. bu dosya ile konfigüre edilir: /etc/abrt/abrt-action-save-package-data.conf

biri bu yapılandırma dosyasında satır değiştirmektir kullanılmasına ilişkin sık engel: evet çekirdek dosyaları gelen yakalamak için o

ProcessUnpackaged = no 

Değiştir senin Homebrew süreçleri, aksi takdirde sadece paket yöneticisi tarafından yüklenen programlardan corefiles yakalar. Benim yok iyi bu yüzden

cd /var/spool/abrt/XXXXXXX 
gdb $(cat executable) coredump 

bu daha iyi bir yol kadar var olabilir, ama gdb bana hizmet etti:

Bunu bir çekirdek dökümü incelemek için [DÜZENLEME coredump nasıl kullanılacağını cevap] başka yollar aradı. Sadece XXXXXXX dosyasını coredump dosyanızı içeren klasörle değiştirin. Gdb komutu kesildi ve yapıştırın.

Referanslar:

Redhat Book

CentOS Forum

+0

teşekkürler. Ben coredump dosyasını aldım, ama abrt ile nasıl açılır? Çekirdek dosyasının nasıl oluşturulduğundan emin değilseniz – Devos

+0

, sadece #file core.XYZ yapın - bu, corefile oluşturmak için çalıştırılan komutu gösterir. – kumar