GNU/Linux >> Belajar Linux >  >> Linux

Inti dibuang, tetapi file inti tidak ada di direktori saat ini?

Baca /usr/src/linux/Documentation/sysctl/kernel.txt.

core_pattern digunakan untuk menentukan nama pola core dumpfile.

  • Jika karakter pertama dari pola adalah '|', kernel akan memperlakukan sisa pola sebagai perintah untuk dijalankan. Dump inti akan ditulis ke masukan standar dari program itu, bukan ke file.

Alih-alih menulis dump inti ke disk, sistem Anda dikonfigurasikan untuk mengirimkannya ke abrt (artinya:Alat Pelaporan Bug Otomatis, bukan program "batalkan") sebagai gantinya. Alat Pelaporan Bug Otomatis mungkin tidak didokumentasikan sebagaimana mestinya...

Bagaimanapun, jawaban cepatnya adalah Anda harus dapat menemukan file inti Anda di /var/cache/abrt , di mana abrt menyimpannya setelah dipanggil. Demikian pula, sistem lain yang menggunakan Apport dapat menghilangkan inti di /var/crash , dan seterusnya.


Pada Ubuntu baru-baru ini (12,04 dalam kasus saya), "Segmentation fault (core dumped)" mungkin akan dicetak, tetapi tidak ada file inti yang dihasilkan di tempat yang Anda harapkan (misalnya untuk program yang dikompilasi secara lokal).

Ini dapat terjadi jika Anda memiliki ukuran file inti ulimit 0 (Anda belum melakukan ulimit -c unlimited ) -- ini adalah default di Ubuntu. Biasanya itu akan menekan "(core dumped)", memberi petunjuk kepada Anda tentang kesalahan Anda, tetapi di Ubuntu, file inti disalurkan ke Apport (sistem pelaporan kerusakan Ubuntu) melalui /proc/sys/kernel/core_pattern , dan ini sepertinya menyebabkan pesan yang menyesatkan.

Jika Apport menemukan bahwa program yang dipermasalahkan bukan program yang seharusnya dilaporkan mogok (yang dapat Anda lihat terjadi di /var/log/apport.log ), ini kembali ke simulasi perilaku kernel default dengan meletakkan file inti di cwd (ini dilakukan di skrip /usr/share/apport/apport ). Ini termasuk menghormati ulimit, dalam hal ini tidak melakukan apa-apa. Tapi (saya asumsikan) sejauh menyangkut kernel, sebuah corefile dibuat (dan disalurkan ke apport), maka muncul pesan "Segmentation fault (core dumped)".

Pada akhirnya PEBKAC karena lupa menyetel ulimit, tetapi pesan yang menyesatkan membuat saya berpikir saya akan gila untuk sementara waktu, bertanya-tanya apa yang memakan file inti saya.

(Juga, secara umum, halaman manual inti(5) -- man 5 core -- adalah referensi yang bagus untuk mengetahui di mana file inti Anda berakhir dan alasan file tersebut mungkin tidak ditulis.)


Linux
  1. Bandingkan Direktori Tapi Bukan Isi File?

  2. Apakah File Command Shuf> File Meninggalkan File Kosong, Tapi Perintah Serupa Tidak??

  3. Bagaimana Cara Membuat Jendela Baru Di Direktori Saat Ini Di Tmux?

  1. Jalankan perintah untuk setiap file di direktori saat ini

  2. file_put_contents tidak membuat file txt

  3. Temukan file yang ada di satu direktori tetapi tidak di direktori lain

  1. Bagaimana cara keluar dari penjelajah file Ranger kembali ke command prompt tetapi tetap mempertahankan direktori saat ini?

  2. sudo -i tetapi pertahankan direktori kerja saat ini

  3. Bagaimana cara menyalin pohon direktori tetapi bukan file di Linux?