]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - man/coredumpctl.xml
travis: use UBSan checks from OSS-Fuzz
[thirdparty/systemd.git] / man / coredumpctl.xml
index 4bd1a7e67f86f5046af719638cb2ed29702befa3..5419bc151aab1e4f7dd992ef8d250df463c257ce 100644 (file)
@@ -1,28 +1,7 @@
 <?xml version='1.0'?> <!--*-nxml-*-->
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
-  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
-<!ENTITY % entities SYSTEM "custom-entities.ent" >
-%entities;
-]>
-
-<!--
-  This file is part of systemd.
-
-  Copyright 2012 Zbigniew JÄ™drzejewski-Szmek
-
-  systemd is free software; you can redistribute it and/or modify it
-  under the terms of the GNU Lesser General Public License as published by
-  the Free Software Foundation; either version 2.1 of the License, or
-  (at your option) any later version.
-
-  systemd is distributed in the hope that it will be useful, but
-  WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-  Lesser General Public License for more details.
-
-  You should have received a copy of the GNU Lesser General Public License
-  along with systemd; If not, see <http://www.gnu.org/licenses/>.
--->
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+<!-- SPDX-License-Identifier: LGPL-2.1+ -->
 
 <refentry id="coredumpctl" conditional='ENABLE_COREDUMP'
     xmlns:xi="http://www.w3.org/2001/XInclude">
@@ -30,15 +9,6 @@
   <refentryinfo>
     <title>coredumpctl</title>
     <productname>systemd</productname>
-
-    <authorgroup>
-      <author>
-        <contrib>Developer</contrib>
-        <firstname>Zbigniew</firstname>
-        <surname>JÄ™drzejewski-Szmek</surname>
-        <email>zbyszek@in.waw.pl</email>
-      </author>
-    </authorgroup>
   </refentryinfo>
 
   <refmeta>
@@ -48,7 +18,7 @@
 
   <refnamediv>
     <refname>coredumpctl</refname>
-    <refpurpose>Retrieve coredumps from the journal</refpurpose>
+    <refpurpose>Retrieve and process saved core dumps and metadata</refpurpose>
   </refnamediv>
 
   <refsynopsisdiv>
   <refsect1>
     <title>Description</title>
 
-    <para><command>coredumpctl</command> may be used to
-    retrieve coredumps from
-    <citerefentry><refentrytitle>systemd-journald</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
+    <para><command>coredumpctl</command> is a tool that can be used to retrieve and process core
+    dumps and metadata which were saved by
+    <citerefentry><refentrytitle>systemd-coredump</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
+    </para>
   </refsect1>
 
   <refsect1>
     <para>The following options are understood:</para>
 
     <variablelist>
+
+      <xi:include href="standard-options.xml" xpointer="help" />
+      <xi:include href="standard-options.xml" xpointer="version" />
+
       <varlistentry>
         <term><option>--no-legend</option></term>
 
-        <listitem><para>Do not print column headers.
-        </para></listitem>
+        <listitem><para>Do not print column headers.</para></listitem>
       </varlistentry>
 
+      <xi:include href="standard-options.xml" xpointer="no-pager" />
+
       <varlistentry>
         <term><option>-1</option></term>
 
-        <listitem><para>Show information of a single coredump only,
-        instead of listing all known coredumps. </para></listitem>
+        <listitem><para>Show information of a single core dump only, instead of listing
+        all known core dumps.</para></listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-S</option></term>
+        <term><option>--since</option></term>
+
+        <listitem><para>Only print entries which are since the specified date.</para></listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-U</option></term>
+        <term><option>--until</option></term>
+
+        <listitem><para>Only print entries which are until the specified date.</para></listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-r</option></term>
+        <term><option>--reverse</option></term>
+
+        <listitem><para>Reverse output so that the newest entries are displayed first.
+        </para></listitem>
       </varlistentry>
 
       <varlistentry>
-        <term><option>-F</option></term>
-        <term><option>--field=</option></term>
+        <term><option>-F</option> <replaceable>FIELD</replaceable></term>
+        <term><option>--field=</option><replaceable>FIELD</replaceable></term>
 
         <listitem><para>Print all possible data values the specified
-        field takes in matching coredump entries of the
+        field takes in matching core dump entries of the
         journal.</para></listitem>
       </varlistentry>
 
       <varlistentry>
-        <term><option>-o</option></term>
-        <term><option>--output=FILE</option></term>
+        <term><option>-o</option> <replaceable>FILE</replaceable></term>
+        <term><option>--output=</option><replaceable>FILE</replaceable></term>
 
         <listitem><para>Write the core to <option>FILE</option>.
         </para></listitem>
       </varlistentry>
 
-      <xi:include href="standard-options.xml" xpointer="help" />
-      <xi:include href="standard-options.xml" xpointer="version" />
-      <xi:include href="standard-options.xml" xpointer="no-pager" />
+      <varlistentry>
+        <term><option>--debugger=</option><replaceable>DEBUGGER</replaceable></term>
+
+        <listitem><para>Use the given debugger for the <command>debug</command>
+        command. If not given and <varname>$SYSTEMD_DEBUGGER</varname> is unset, then
+        <citerefentry><refentrytitle>gdb</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+        will be used. </para></listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-D</option> <replaceable>DIR</replaceable></term>
+        <term><option>--directory=</option><replaceable>DIR</replaceable></term>
+
+        <listitem><para>Use the journal files in the specified <option>DIR</option>.
+        </para></listitem>
+      </varlistentry>
 
+      <varlistentry>
+        <term><option>-q</option></term>
+        <term><option>--quiet</option></term>
+
+        <listitem><para>Suppresses informational messages about lack
+        of access to journal files and possible in-flight coredumps.
+        </para></listitem>
+      </varlistentry>
     </variablelist>
+  </refsect1>
+
+  <refsect1>
+    <title>Commands</title>
 
     <para>The following commands are understood:</para>
 
       <varlistentry>
         <term><command>list</command></term>
 
-        <listitem><para>List coredumps captured in the journal
+        <listitem><para>List core dumps captured in the journal
         matching specified characteristics. If no command is
-        specified, this is the implied default.</para></listitem>
+        specified, this is the implied default.</para>
+
+        <para>The output is designed to be human readable and contains list contains
+        a table with the following columns:</para>
+        <variablelist>
+          <varlistentry>
+            <term>TIME</term>
+            <listitem><para>The timestamp of the crash, as reported by the kernel.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term>PID</term>
+            <listitem><para>The identifier of the process that crashed.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term>UID</term>
+            <term>GID</term>
+            <listitem><para>The user and group identifiers of the process that crashed.</para>
+            </listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term>SIGNAL</term>
+            <listitem><para>The signal that caused the process to crash, when applicable.
+            </para></listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term>COREFILE</term>
+            <listitem><para>Information whether the coredump was stored, and whether
+            it is still accessible: <literal>none</literal> means the core was
+            not stored, <literal>-</literal> means that it was not available (for
+            example because the process was not terminated by a signal),
+            <literal>present</literal> means that the core file is accessible by the
+            current user, <literal>journal</literal> means that the core was stored
+            in the <literal>journal</literal>, <literal>truncated</literal> is the
+            same as one of the previous two, but the core was too large and was not
+            stored in its entirety, <literal>error</literal> means that the core file
+            cannot be accessed, most likely because of insufficient permissions, and
+            <literal>missing</literal> means that the core was stored in a file, but
+            this file has since been removed.</para></listitem>
+          </varlistentry>
+
+          <varlistentry>
+            <term>EXE</term>
+            <listitem><para>The full path to the executable. For backtraces of scripts
+            this is the name of the interpreter.</para></listitem>
+          </varlistentry>
+        </variablelist>
+
+        <para>It's worth noting that different restrictions apply to
+        data saved in the journal and core dump files saved in
+        <filename>/var/lib/systemd/coredump</filename>, see overview in
+        <citerefentry><refentrytitle>systemd-coredump</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
+        Thus it may very well happen that a particular core dump is still listed
+        in the journal while its corresponding core dump file has already been
+        removed.</para></listitem>
       </varlistentry>
 
       <varlistentry>
         <term><command>info</command></term>
 
-        <listitem><para>Show detailed information about coredumps
+        <listitem><para>Show detailed information about the last core dump
+        or core dumps matching specified characteristics
         captured in the journal.</para></listitem>
       </varlistentry>
 
       <varlistentry>
         <term><command>dump</command></term>
 
-        <listitem><para>Extract the last coredump matching specified
-        characteristics. The coredump will be written on standard
+        <listitem><para>Extract the last core dump matching specified
+        characteristics. The core dump will be written on standard
         output, unless an output file is specified with
-        <option>-o/--output</option>. </para></listitem>
+        <option>--output=</option>. </para></listitem>
       </varlistentry>
 
       <varlistentry>
-        <term><command>gdb</command></term>
-
-        <listitem><para>Invoke the GNU debugger on the last coredump
-        matching specified characteristics. </para></listitem>
+        <term><command>debug</command></term>
+
+        <listitem><para>Invoke a debugger on the last core dump
+        matching specified characteristics. By default,
+        <citerefentry><refentrytitle>gdb</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+        will be used. This may be changed using the <option>--debugger=</option>
+        option or the <varname>$SYSTEMD_DEBUGGER</varname> environment
+        variable.</para></listitem>
       </varlistentry>
 
     </variablelist>
       <varlistentry>
         <term><replaceable>MATCH</replaceable></term>
 
-        <listitem><para>General journalctl predicates (see
-        <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>).
-        Must contain an equal sign. </para></listitem>
+        <listitem><para>General journalctl match filter, must contain an equals
+        sign (<literal>=</literal>). See
+        <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
+        </para></listitem>
       </varlistentry>
     </variablelist>
   </refsect1>
   <refsect1>
     <title>Exit status</title>
     <para>On success, 0 is returned; otherwise, a non-zero failure
-    code is returned. Not finding any matching coredumps is treated as
+    code is returned. Not finding any matching core dumps is treated as
     failure.
     </para>
   </refsect1>
 
+  <refsect1>
+    <title>Environment</title>
+
+    <variablelist class='environment-variables'>
+      <varlistentry>
+        <term><varname>$SYSTEMD_DEBUGGER</varname></term>
+        <listitem><para>Use the given debugger for the <command>debug</command>
+        command. See the <option>--debugger=</option> option.</para></listitem>
+      </varlistentry>
+    </variablelist>
+  </refsect1>
+
   <refsect1>
     <title>Examples</title>
 
     <example>
-      <title>List all the coredumps of a program named foo</title>
+      <title>List all the core dumps of a program named foo</title>
 
       <programlisting># coredumpctl list foo</programlisting>
     </example>
 
     <example>
-      <title>Invoke gdb on the last coredump</title>
+      <title>Invoke gdb on the last core dump</title>
 
-      <programlisting># coredumpctl gdb</programlisting>
+      <programlisting># coredumpctl debug</programlisting>
     </example>
 
     <example>
     </example>
 
     <example>
-      <title>Extract the last coredump of /usr/bin/bar to a file named
+      <title>Extract the last core dump of /usr/bin/bar to a file named
       <filename noindex="true">bar.coredump</filename></title>
 
       <programlisting># coredumpctl -o bar.coredump dump /usr/bin/bar</programlisting>