Pada Ubuntu baru-baru ini (12,04 dalam kasus saya), dimungkinkan untuk "Segmentasi fault (core dumped)" untuk dicetak, tetapi tidak ada file inti yang dihasilkan di mana Anda mungkin mengharapkan satu (misalnya untuk program yang dikompilasi secara lokal).
Ini dapat terjadi jika Anda memiliki ukuran file inti ulimit 0 (Anda belum melakukannya ulimit -c unlimited
) - ini adalah default pada Ubuntu. Biasanya itu akan menekan "(core dumped)", membuat Anda salah, tetapi di Ubuntu, corefiles disalurkan ke Apport (sistem pelaporan kerusakan Ubuntu) via /proc/sys/kernel/core_pattern
, dan ini tampaknya menyebabkan pesan yang menyesatkan.
Jika Apport menemukan bahwa program yang dimaksud bukan program yang seharusnya dilaporkan macet (yang dapat Anda lihat terjadi /var/log/apport.log
), program kembali ke simulasi perilaku kernel default dengan meletakkan file inti di cwd (ini dilakukan dalam skrip /usr/share/apport/apport
). Ini termasuk menghormati ulimit, dalam hal ini tidak melakukan apa-apa. Tapi (saya berasumsi) sejauh menyangkut kernel, corefile dihasilkan (dan disalurkan ke apport), maka pesan "Segmentasi fault (core dumped)".
Pada akhirnya PEBKAC karena lupa mengatur ulimit, tetapi pesan yang menyesatkan membuat saya berpikir saya akan menjadi gila untuk sementara waktu, bertanya-tanya apa yang memakan corefiles saya.
(Juga, secara umum, halaman manual inti (5) - man 5 core
- adalah referensi yang bagus untuk tempat file inti Anda dan alasan mengapa itu tidak dapat ditulis.)