Ja, so ist es. Sie können /proc/sys/kernel/core_pattern
ändern um den Pfadnamen zu definieren, der zum Generieren der Kerndatei verwendet wird. Weitere Informationen finden Sie unter man core
Beispiel:
echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern # `tee' instead of > so that
# opening happens in the
# elevated process
würde dazu führen, dass alle zukünftigen Core-Dumps in /tmp
generiert werden und den Namen core_[program].[pid]
haben
Bevor Sie den Anweisungen in der akzeptierten Antwort folgen, sollten Sie den Inhalt von /proc/sys/kernel/core_pattern
überprüfen um zu sehen, ob das Redhat-Abrt-System verwendet wird.
-> cat /proc/sys/kernel/core_pattern
|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e
Wenn das verwendet wird, haben Sie bereits ein ziemlich umfangreiches Schema zum Verwalten von Kerndateien, das Sie verstehen sollten, bevor Sie es überschreiben.
Kurz gesagt, abrt:
- legt die Kerndateien hier ab:
/var/spool/abrt/
- hat eine GUI, die mit dem Befehl
abrt-gui
gestartet wird - Erweitert die Kerndatei mit zusätzlichen Informationen über den fehlgeschlagenen Prozess.
- wird mit dieser Datei konfiguriert:
/etc/abrt/abrt-action-save-package-data.conf
Ein häufiger Stolperstein bei der Verwendung ist die Änderung dieser Zeile in der Konfigurationsdatei:
ProcessUnpackaged = no
Ändern Sie dies auf yes, um Kerndateien von Ihren Homebrew-Prozessen zu erfassen, andernfalls werden nur Kerndateien von Programmen erfasst, die vom Paketmanager installiert wurden.
[EDIT to answer how to use coredump]Um einen Core-Dump zu untersuchen, gehe ich folgendermaßen vor:
cd /var/spool/abrt/XXXXXXX
gdb $(cat executable) coredump
Es könnte einen besseren Weg geben, aber gdb hat mir gute Dienste geleistet, also habe ich nicht nach anderen Wegen gesucht. Ersetzen Sie einfach XXXXXXX durch den Ordner, der Ihre Coredump-Datei enthält. Der gdb-Befehl ist zum Ausschneiden und Einfügen bereit.
Referenzen:
Redhat-Buch
CentOS-Forum