GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wechsel des Standortes der Bohrkernhalde

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:

  1. legt die Kerndateien hier ab:/var/spool/abrt/
  2. hat eine GUI, die mit dem Befehl abrt-gui gestartet wird
  3. Erweitert die Kerndatei mit zusätzlichen Informationen über den fehlgeschlagenen Prozess.
  4. 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


Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Linux – Wann sollten /dev und /sys für die Userspace-Kernel-Kommunikation verwendet werden?

  3. Linux – Warum ist das Bearbeiten von Core_pattern eingeschränkt?

  4. /proc/[pid]/pagemaps und /proc/[pid]/maps | Linux

  5. Änderungen der Parameter des Kernelmoduls (unter Verwendung von /sys/module)

/proc/cpuinfo- und /proc/meminfo-Dateien unter Linux

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

Wie funktioniert /proc/*?

Wo sind die Linux-Kernel-Parameter in /proc/sys dokumentiert?

sysctl -p auf /proc/sys/pcie_aspm fehlgeschlagen