Ubuntu 16.04LTS'deki çekirdek dökümü nerede bulabilirim?


14

Yapması gerekeni yapan bir C ++ programı var, ama sonunda çöküyor ve bir çekirdek dökümü oluşturur, çünkü işaretçi ile ilgili bir sorun olmalı. Benim sorunum çekirdek dosyayı bulamıyorum, bu yüzden hata ayıklama olamaz.

denedim

ulimit -c unlimited
ulimit -a

ve şimdi dosyanın boyutu sınırsız olarak ayarlanmış, ancak yine de çekirdeği bulamıyorum. Burada yazılan her klasörde denedim ama hala çekirdek bir dosya oluşturulmamış gibi görünüyor.

Nereden bulabilirim?


Geçerli dizin, ya da/var/crash
vals

4
Çoğu durumda doğru olsa da, @waltinator, bazen kontrol etmek gerekir /var/log/apport.log, çünkü modern Ubuntu sürümleri, belirgin olmayan şekilde çekirdek dökümü ile etkileşime girebilecek Apport kullanır. Daha fazla bilgi için stackoverflow.com/a/18368068/1772379 adresine bakın .
Ben Johnson

Yanıtlar:


12

Ubuntu'da çekirdek dökümler Apport tarafından işlenir ve içinde bulunabilir /var/crash/. Ancak kararlı sürümlerde varsayılan olarak devre dışıdır.

Apport'u etkinleştirmek için: sudo systemctl enable apport.serviceveya komutunu çalıştırın sudo service apport start.


Devre dışı bırakmak için, çalıştırın: sudo systemctl disable apport.serviceveya sudo service apport stopnormal çekirdek boşaltma yöntemine geri dönmek için. Bkz. Apport'u nasıl etkinleştirir veya devre dışı bırakırım? .

Kalıcı olarak devre dışı bırakmak için /etc/apport/crashdb.confdosyayı düzenleyin ve aşağıdaki satırı yorumlayın:

'problem_types': ['Bug', 'Package'],

#satırın başına bir kare işareti ( ) ekleyerek .

Çökme raporlamasını devre dışı bırakmak için (normale dön), karma sembolünü (olduğu gibi) kaldırın.


Ayrıca core_patternçekirdek döküntülerinin çekirdek tarafından nasıl ele alındığını da kontrol edebilirsiniz :

$ cat /proc/sys/kernel/core_pattern
|/usr/share/apport/apport %p %s %c

Böylece çekirdek dosyalar bile tarafından devre dışı bırakılır ulimit, apportyine de çökmeyi yakalar.

Ayrıca bakınız:


4

Bu googlin 'için: (benim durumumda - Ubuntu 16.04 ve 18.04 ve özel bir uygulama) /var/crashhala boştu, bu nedenle çekirdek oluşturma işleminin hızlı bir yolu (örneğin , ilgili bir ulimit yerleşik ayarını kullanmanız şartıyla )

sudo sysctl -w kernel.core_pattern=core.%u.%p.%t # to enable core generation

ve

systemctl restart apport # to restore default apport settings
# which, by the way, were "|/usr/share/apport/apport %p %s %c %d %P" (without quotes)


Kaynaklar:


Basit, anlaşılır, çalıştı.
Taekahn
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.