Di mana saya menemukan dump inti di 16.04LTS ubuntu?


14

Saya memiliki program C ++ yang melakukan apa yang seharusnya dilakukan, tetapi harus ada beberapa masalah dengan pointer, karena crash pada akhirnya dan membuat dump inti. Masalah saya adalah bahwa saya tidak dapat menemukan file inti, jadi saya tidak dapat men-debug itu.

saya telah mencoba

ulimit -c unlimited
ulimit -a

dan sekarang dimensi file diatur ke tidak terbatas, tetapi masih saya tidak dapat menemukan intinya. Saya sudah mencoba di setiap folder yang ditulis di sini tapi tetap saja tidak ada file inti yang dibuat.

Di mana saya bisa menemukannya?


Direktori saat ini, atau/var/crash
waltinator

4
Meskipun benar dalam banyak kasus, @waltinator, terkadang perlu diperiksa /var/log/apport.log, karena versi Ubuntu modern menggunakan Apport, yang dapat mengganggu core-dumping dengan cara yang tidak jelas. Lihat stackoverflow.com/a/18368068/1772379 untuk info lebih lanjut.
Ben Johnson

Jawaban:


12

Di Ubuntu, dump inti ditangani oleh Apport dan dapat ditemukan di /var/crash/. Tetapi dinonaktifkan secara default dalam rilis stabil.

Untuk mengaktifkan Apport, jalankan: sudo systemctl enable apport.serviceatau sudo service apport start.


Untuk menonaktifkan, jalankan: sudo systemctl disable apport.serviceatau sudo service apport stopuntuk kembali ke metode dump inti reguler. Lihat: Bagaimana cara saya mengaktifkan atau menonaktifkan Apport? .

Untuk menonaktifkan secara permanen, edit /etc/apport/crashdb.conffile dan komentari baris berikut:

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

dengan menambahkan simbol hash ( #) di awal baris.

Untuk menonaktifkan pelaporan kerusakan (kembali ke normal), hapus simbol hash (sama seperti sebelumnya).


Anda juga dapat memeriksa core_pattern, bagaimana core dump ditangani oleh kernel:

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

Jadi, bahkan file inti pun dinonaktifkan ulimit, apportmasih akan menangkap macet.

Lihat juga:


3

Bagi mereka yang googlin ': (dalam kasus saya - Ubuntu 16.04 dan 18.04 dan aplikasi khusus) /var/crashmasih kosong, jadi cara cepat untuk menangani pembuatan inti (asalkan Anda mis. Menggunakan pengaturan bawaan ulimit yang relevan ) adalah

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

dan

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


Sumber:


Sederhana, lugas, berhasil.
Taekahn
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.