COREDUMPCTL(1)

BEZEICHNUNG
coredumpctl - Abfragen und Verarbeiten gespeicherter Speicherauszüge und Metadaten

ÜBERSICHT

coredumpctl [OPTIONEN…] {BEFEHL} [PID|PROG|BEF|TREFFER…]

BESCHREIBUNG

coredumpctl ist ein Werkzeug, das zur Abfrage und Verarbeitung von durch systemd-coredump(8) gespeicherten Speicherauszügen und Metadaten verwandt werden kann.

BEFEHLE

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.

    PID
        Die Kennzeichnung des abgestürzten Prozesses.

    UID, GID
        Die Benutzer- und Gruppenkennzeichner des abgestürzten Prozesses.

    SIGNAL
        Das Signal, das den Prozess zum Absturz brachte, falls zutreffend.

    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.

    EXE
        Der komplette Pfad zum Programm. Für Backtraces von Skripten ist dies der Name des Interpreters.

    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.

info
    Zeigt detaillierte Informationen über den neusten Speicherauszug an, der auf die angegebenen Charakteristika passt und im Journal gesammelt wurde.

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.

debug
    Ruft einen Debugger auf den neusten Speicherauszug auf, der auf die angegebenen Charakteristika passt. Standardmäßig wird gdb(1) 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.

OPTIONEN

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.

-n ANZ
    Höchstens die angegebene Anzahl von Einträgen anzeigen. Der angegebene Parameter muss eine Ganzzahl größer oder gleich 1 sein.

-S, --since
    Gibt nur Einträge seit dem angegebenen Datum aus.

-U, --until
    Gibt nur Einträge bis zu dem angegebenen Datum aus.

-r, --reverse
    Invertiert die Ausgabe, so dass die neusten Einträge zuerst dargestellt werden.

-F FELD, --field=FELD
    Gibt alle möglichen Datenwerte aus, die das angegebene Feld beim Abgleich von Speicherauszugseinträgen im Journal akzeptiert.

-o DATEI, --output=DATEI
    Schreibt den Speicherauszug nach DATEI.

--debugger=DEBUGGER
    Verwendet den angegebenen Debugger für den Befehl debug. Falls nicht übergeben und $SYSTEMD_DEBUGGER nicht gesetzt ist, dann wird gdb(1) verwandt.

-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.)

--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.

-D VERZ, --directory=VERZ
    Verwendet die Journal-Datei im angegebenen VERZ.

--root=WURZEL
    Verwendet das Wurzelverzeichnis WURZEL beim Suchen nach Speicherauszügen.

--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.

-q, --quiet
    Unterdrückt informelle Meldungen über fehlenden Zugriff auf Journaldateien und möglicherweise gerade ablaufende Speicherauszüge.

--all
    Schaut in alle verfügbaren Journal-Dateien in /var/log/journal/ (ohne Journal-Namensräume), statt nur in lokale Dateien.

ÜBEREINSTIMMUNG

Eine Übereinstimmung kann Folgendes sein:

PID
    Prozesskennung des Prozesses, der den Speicherauszug erzeugte. Eine Ganzzahl.

PROG
    Name des Programms (passt auf COREDUMP_COMM=). Darf keinen Schrägstrich enthalten.

BEF
    Pfad zu dem Programm (passt auf COREDUMP_EXE=). Muss mindestens einen Schrägstrich enthalten.

TREFFER
    Allgemeiner-Journalctl-Treffer-Filter, muss ein Gleichheitszeichen (»=«) enthalten. Siehe journalctl(1).

EXIT-STATUS

Im Erfolgsfall wird 0 zurückgeliefert; andernfalls wird ein von Null verschiedener Fehler-Code zurückgeliefert. Werden keine passenden Speicherauszüge gefunden, wird dies als Fehler betrachtet.

UMGEBUNGSVARIABLEN

$SYSTEMD_DEBUGGER
    Verwendet den übergebenen Debugger für den Befehl debug. Siehe die Option --debugger=.

BEISPIELE

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

    $ coredumpctl debug

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

SIEHE AUCH

systemd-coredump(8), coredump.conf(5), systemd-journald.service(8), gdb(1)

ANMERKUNGEN

1.  Spezifikation für auffindbare Partitionen
    https://systemd.io/DISCOVERABLE_PARTITIONS

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer (debian-l10n-german@lists.debian.org).