Ya itu. Anda dapat mengubah /proc/sys/kernel/core_pattern
untuk menentukan pathname yang digunakan untuk menghasilkan corefile. Untuk selengkapnya, lihat man core
contoh:
echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern # `tee' instead of > so that
# opening happens in the
# elevated process
akan menyebabkan semua dump inti di masa mendatang dihasilkan di /tmp
dan diberi nama core_[program].[pid]
Sebelum mengikuti petunjuk dalam jawaban yang diterima, sebaiknya periksa isi /proc/sys/kernel/core_pattern
untuk melihat apakah sistem abrt Redhat sedang digunakan.
-> cat /proc/sys/kernel/core_pattern
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
Jika itu sedang digunakan, Anda sudah memiliki skema yang cukup ekstensif untuk mengelola file inti yang ingin Anda pahami sebelum menggantinya.
Singkatnya, abrt:
- letakkan file inti di sini:
/var/spool/abrt/
- memiliki gui yang dimulai dengan perintah
abrt-gui
- memperbesar corefile dengan informasi tambahan tentang proses yang gagal.
- dikonfigurasi dengan file ini:
/etc/abrt/abrt-action-save-package-data.conf
Salah satu batu sandungan umum dalam menggunakannya adalah mengubah baris ini di file konfigurasi:
ProcessUnpackaged = no
Ubah itu menjadi ya untuk menangkap file inti dari proses homebrew Anda, jika tidak, ini hanya akan menangkap file inti dari program yang diinstal oleh pengelola paket.
[EDIT untuk menjawab cara menggunakan coredump] Untuk memeriksa core dump, saya melakukan ini:
cd /var/spool/abrt/XXXXXXX
gdb $(cat executable) coredump
Mungkin ada cara yang lebih baik untuk melakukannya, tetapi gdb telah membantu saya dengan baik jadi saya belum mencari cara lain. Ganti saja XXXXXXX dengan folder yang berisi file coredump Anda. Perintah gdb siap potong dan tempel.
Referensi:
Buku Redhat
Forum CentOS