Ich möchte den Standardspeicherort der Core-Dump-Dateien ändern, so dass jedes Mal, wenn ein Core-Dump erstellt wird, in dieses Verzeichnis gewechselt wird.Außerdem ist es möglich, die Speicherauszugsdatei unter dem Namen zu speichern abgestürzte Datei an diesem Ort?Ändern des Speicherorts des Core-Dumps
Antwort
Ja, ist es. Sie können /proc/sys/kernel/core_pattern
ändern, um den Pfadnamen zu definieren, der zum Generieren der Corefile verwendet wird. Weitere Informationen finden sich man core
Beispiel:
echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern
würde dazu führen, alle zukünftigen Core-Dumps in /tmp
erzeugt werden und core_[program].[pid]
+1 für den 'Tee' Trick;) Beachten Sie, dass es auch' sysctl' gibt. Dann ist es 'sysctl -w kernel.core_pattern = '/ tmp/core_% e.% P'' – hek2mgl
Dies funktioniert nicht auf CentOS 7. – Ali
@Ali -" funktioniert nicht "ist keine nützliche Problembeschreibung. Es sollte, wenn nicht die Aufzählungszeichen in der [core manpage] (http: // www. Unix.com/man-page/centos/5/core /), und wenn das Problem weiterhin besteht, stellen Sie eine neue Frage, Kommentare sind nicht der richtige Ort, um neue Probleme zu diskutieren. – mata
Bevor Sie die Anweisungen in der akzeptierte Antwort genannt werden, könnte es gut sein, Idee, den Inhalt von /proc/sys/kernel/core_pattern
zu ü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 in Gebrauch ist, dann haben Sie bereits ein ziemlich umfangreiches Programm Core-Dateien für die Verwaltung, die Sie wollen würde, verstehen, bevor Sie es überschreiben.
Auf den Punkt gebracht, abrt:
- setzt die Core-Dateien hier:
/var/spool/abrt/
- hat eine gui, die mit dem Befehl
abrt-gui
- erweitert die corefile mit zusätzlichen Informationen über den ausgefallenen Prozess gestartet wird.
- wird mit dieser Datei konfigurieren:
/etc/abrt/abrt-action-save-package-data.conf
Ein gemeinsames Hemmschuh bei der Verwendung ist diese Zeile in der Konfigurationsdatei zu ändern:
ProcessUnpackaged = no
ändern, die ja Core-Dateien zu erfassen von Ihrem Homebrew-Prozesse, andernfalls werden nur Corefiles von Programmen erfasst, die vom Paketmanager installiert wurden.
[EDIT zu beantworten, wie coredump verwenden] Um einen Core-Dump ich dies tun zu untersuchen:
cd /var/spool/abrt/XXXXXXX
gdb $(cat executable) coredump
Es könnte einen besseren Weg, um damit sein, aber gdb hat mir gute Dienste geleistet, so habe ich nicht suchte nach anderen Wegen. Ersetzen Sie XXXXXXX einfach durch den Ordner, der Ihre Coredump-Datei enthält. Der Befehl gdb wird ausgeschnitten und eingefügt.
Referenzen:
Die "was passiert" Version: http://stackoverflow.com/questions/2065912/core-dumped-but-core-file-is- nicht im aktuellen Verzeichnis? –