Die folgenden Befehle werden verstanden:
list
Listet im Journal eingesammelte Speicherauszüge auf, die auf angegebene Charakteristika passen. Falls kein Befehl angegeben ist, ist dies die implizierte Vorgabe.
Die Ausgabe soll menschenlesbar sein und enthält eine Tabelle mit den folgenden Spalten:
TIME
Der Zeitstempel des Absturzes, wie vom Kernel gemeldet.
Hinzugefügt in Version 233.
PID
Die Kennzeichnung des abgestürzten Prozesses.
Hinzugefügt in Version 233.
UID, GID
Die Benutzer- und Gruppenkennzeichner des abgestürzten Prozesses.
Hinzugefügt in Version 233.
SIGNAL
Das Signal, das den Prozess zum Absturz brachte, falls zutreffend.
Hinzugefügt in Version 233.
COREFILE
Informationen, ob der Speicherauszug gespeichert wurde und ob er noch zugreifbar ist: »none« bedeutet, dass der Speicherauszug nicht gespeichert wurde, »-« bedeutet, dass er nicht verfügbar war (weil der Prozess beispielsweise nicht durch ein Signal beendet wurde), »present« bedeutet, dass der aktuelle Benutzer auf den Speicherauszug zugreifen kann, »journal« bedeutet, dass der Speicherauszug im »journal« gespeichert wurde, »truncated« ist das gleiche wie die vorherigen zwei, aber der Speicherauszug war zu groß und wurde nicht als Ganzes gespeichert, »error« bedeutet, dass auf die Speicherauszugsdatei nicht zugegriffen werden kann, wahrscheinlich aufgrund nicht ausreichender Rechte und »missing« bedeutet, dass der Speicherauszug in einer Datei gespeichert wurde, aber die Datei wurde danach entfernt.
Hinzugefügt in Version 233.
EXE
Der komplette Pfad zum Programm. Für Backtraces von Skripten ist dies der Name des Interpreters.
Hinzugefügt in Version 233.
Es ist gut zu wissen, dass verschiedene Beschränkungen für Daten, die im Journal gespeichert werden und für Speicherauszüge, die in /var/lib/systemd/coredump abgelegt sind, gelten. Lesen Sie den Überblick in systemd-coredump(8). Daher ist es gut möglich, dass ein bestimmter Speicherauszug noch im Journal aufgeführt ist, obwohl die entsprechende Speicherauszugsdatei bereits entfernt wurde.
Hinzugefügt in Version 215.
info
Zeigt detaillierte Informationen über den neusten Speicherauszug an, der auf die angegebenen Charakteristika passt und im Journal gesammelt wurde.
Hinzugefügt in Version 215.
dump
Extrahiert den neusten Speicherauszug, der auf die angegebenen Charakteristika passt. Der Speicherauszug wird auf die Standardausgabe geschrieben, außer eine Ausgabedatei wurde mit
--output= angegeben.
Hinzugefügt in Version 215.
debug
Ruft einen Debugger auf den neusten Speicherauszug auf, der auf die angegebenen Charakteristika passt. Standardmäßig wird
gdb(1)EN verwandt. Dies kann mittels der Option
--debugger= oder der Umgebungsvariable
$SYSTEMD_DEBUGGER geändert werden. Verwenden Sie die Option
--debugger-arguments=, um zusätzliche Befehlszeilenargumente an den Debugger zu übergeben.
Hinzugefügt in Version 239.
Die folgenden Optionen werden verstanden:
-h, --help
Zeigt einen kurzen Hilfetext an und beendet das Programm.
--version
Zeigt eine kurze Versionszeichenkette an und beendet das Programm.
--no-pager
Leitet die Ausgabe nicht an ein Textanzeigeprogramm weiter.
--no-legend
Gibt die Legende nicht aus, d.h. die Spaltenköpfe und die Fußzeile mit Hinweisen.
--json=MODUS
Zeigt die Ausgabe als JSON formatiert. Erwartet entweder »short« (für die kürzest mögliche Ausgabe ohne unnötigen Leerraum oder Zeilenumbrüche), »pretty« (für eine schönere Version der gleichen Ausgabe, mit Einzügen und Zeilenumbrüchen) oder »off« (um die standardmäßig aktivierte JSON-Ausgabe auszuschalten).
-1
Nur Informationen über den neusten Speicherauszug anzeigen, statt alle bekannten Speicherauszüge aufzulisten. Äquivalent zu
--reverse -n 1.
Hinzugefügt in Version 215.
-n ANZ
Höchstens die angegebene Anzahl von Einträgen anzeigen. Der angegebene Parameter muss eine Ganzzahl größer oder gleich 1 sein.
Hinzugefügt in Version 248.
-S, --since
Gibt nur Einträge seit dem angegebenen Datum aus.
Hinzugefügt in Version 233.
-U, --until
Gibt nur Einträge bis zu dem angegebenen Datum aus.
Hinzugefügt in Version 233.
-r, --reverse
Invertiert die Ausgabe, so dass die neusten Einträge zuerst dargestellt werden.
Hinzugefügt in Version 233.
-F FELD, --field=FELD
Gibt alle möglichen Datenwerte aus, die das angegebene Feld beim Abgleich von Speicherauszugseinträgen im Journal akzeptiert.
Hinzugefügt in Version 215.
-o DATEI, --output=DATEI
Schreibt den Speicherauszug nach
DATEI.
Hinzugefügt in Version 215.
--debugger=DEBUGGER
Verwendet den angegebenen Debugger für den Befehl
debug. Falls nicht übergeben und
$SYSTEMD_DEBUGGER nicht gesetzt ist, dann wird
gdb(1)EN verwandt.
Hinzugefügt in Version 239.
-A ARG, --debugger-arguments=ARG
Die angegebene
ARG als zusätzliche Befehlszeilenargumente an den Debugger übergeben. Wenn
ARG Leerraumzeichen enthält, müssen Sie geeignet englische Anführungszeichen verwenden. (Siehe Beispiele.)
Hinzugefügt in Version 248.
--file=GLOB
Akzeptiert einen Datei-Glob als Argument. Falls angegeben, wird Coredumpctl auf den auf
GLOB passenden Journal-Dateien statt den vorgegebenen Laufzeit- und System-Journal-Pfaden arbeiten. Kann mehrfach angegeben werden, dann werden Dateien geeignet verschachtelt.
Hinzugefügt in Version 246.
-D VERZ, --directory=VERZ
Verwendet die Journal-Datei im angegebenen
VERZ.
Hinzugefügt in Version 225.
--root=WURZEL
Verwendet das Wurzelverzeichnis
WURZEL beim Suchen nach Speicherauszügen.
Hinzugefügt in Version 252.
--image=Abbild
Akzeptiert einen Pfad zu einer Plattenabbilddatei oder einem Blockgerätenamen. Falls angegeben, werden alle Aktionen auf das Dateisystem in dem angegebenen Plattenabbild angewandt. Diese Option ist ähnlich zu
--root=, agiert aber auf Dateisystemen, die in Plattenabbildern oder Blockgeräten gespeichert sind. Das Plattenabbild sollte entweder nur ein Dateisystem oder eine Reihe von Dateisystemen innerhalb einer GPT-Partitionstabelle enthalten, die der
Spezifikation für auffindbare Partitionen[1] folgt. Für weitere Informationen über unterstützte Plattenabbilder, siehe den Schalter von
systemd-nspawn(1) mit dem gleichen Namen.
Hinzugefügt in Version 252.
--image-policy=Richtlinie
Akzeptiert gemäß
systemd.image-policy(7) eine Abbildrichtlinienzeichenkette als Argument. Die Richtlinie wird bei Aktionen auf dem mittels
--image= angegebenen Plattenabbild durchgesetzt, siehe oben. Falls nicht angegeben ist die Vorgabe die Richtlinie »*«, d.h. alle erkannten Dateisysteme im Abbild werden verwandt.
-q, --quiet
Unterdrückt informelle Meldungen über fehlenden Zugriff auf Journaldateien und möglicherweise gerade ablaufende Speicherauszüge.
Hinzugefügt in Version 233.
--all
Schaut in alle verfügbaren Journal-Dateien in /var/log/journal/ (ohne Journal-Namensräume), statt nur in lokale Dateien.
Hinzugefügt in Version 250.
Beispiel 1. Alle Speicherauszüge eines Programms auflisten
$ coredumpctl list /usr/lib64/firefox/firefox
TIME PID UID GID SIG COREFILE EXE SIZE
Tue … 8018 1000 1000 SIGSEGV missing /usr/lib64/firefox/firefox -
Wed … 251609 1000 1000 SIGTRAP missing /usr/lib64/firefox/firefox -
Fri … 552351 1000 1000 SIGSEGV present /usr/lib64/firefox/firefox 28.7M
Das Journal hat drei Einträge, die sich auf /usr/lib64/firefox/firefox beziehen und nur beim letzten Eintrag ist eine Speicherauszugsdatei (in externem Speicher auf Platte) verfügbar.
Beachten Sie, dass coredumpctl Zugriff auf die Journal-Dateien haben muss, um die relevanten Einträge aus dem Journal herauszuholen. Daher wird ein nicht privilegierter Benutzer normalerweise nur die Informationen über abstürzende Programme dieses Benutzers sehen.
Beispiel 2. Gdb auf den letzten Speicherauszug anwenden
Beispiel 3. Gdb verwenden, um die vollständigen Registerinformationen des letzten Speicherauszugs anzuzeigen
$ coredumpctl debug --debugger-arguments="-batch -ex 'info all-registers'"
Beispiel 4. Informationen über den Speicherauszug basierend auf der PID anzeigen
$ coredumpctl info 6654
PID: 6654 (bash)
UID: 1000 (user)
GID: 1000 (user)
Signal: 11 (SEGV)
Timestamp: Mon 2021-01-01 00:00:01 CET (20s ago)
Command Line: bash -c $'kill -SEGV $$'
Executable: /usr/bin/bash
Control Group: /user.slice/user-1000.slice/…
Unit: user@1000.service
User Unit: vte-spawn-….scope
Slice: user-1000.slice
Owner UID: 1000 (user)
Boot ID: …
Machine ID: …
Hostname: …
Storage: /var/lib/systemd/coredump/core.bash.1000.….zst (present)
Size on Disk: 51.7K
Message: Process 130414 (bash) of user 1000 dumped core.
Stack trace of thread 130414:
#0 0x00007f398142358b kill (libc.so.6 + 0x3d58b)
#1 0x0000558c2c7fda09 kill_builtin (bash + 0xb1a09)
#2 0x0000558c2c79dc59 execute_builtin.lto_priv.0 (bash + 0x51c59)
#3 0x0000558c2c79709c execute_simple_command (bash + 0x4b09c)
#4 0x0000558c2c798408 execute_command_internal (bash + 0x4c408)
#5 0x0000558c2c7f6bdc parse_and_execute (bash + 0xaabdc)
#6 0x0000558c2c85415c run_one_command.isra.0 (bash + 0x10815c)
#7 0x0000558c2c77d040 main (bash + 0x31040)
#8 0x00007f398140db75 __libc_start_main (libc.so.6 + 0x27b75)
#9 0x0000558c2c77dd1e _start (bash + 0x31d1e) Beispiel 5. Den neusten Speicherauszug aus /usr/bin/bar in eine Datei namens bar.coredump extrahieren
$ coredumpctl -o bar.coredump dump /usr/bin/bar