<?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">

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

<refentry id="coredumpctl" conditional='ENABLE_COREDUMP'
    xmlns:xi="http://www.w3.org/2001/XInclude">

  <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>
    <refentrytitle>coredumpctl</refentrytitle>
    <manvolnum>1</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>coredumpctl</refname>
    <refpurpose>Retrieve coredumps from the journal</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>coredumpctl</command>
      <arg choice="opt" rep="repeat">OPTIONS</arg>
      <arg choice="req">COMMAND</arg>
      <arg choice="opt" rep="repeat">PID|COMM|EXE|MATCH</arg>
    </cmdsynopsis>
  </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>
  </refsect1>

  <refsect1>
    <title>Options</title>

    <para>The following options are understood:</para>

    <variablelist>
      <varlistentry>
        <term><option>--no-legend</option></term>

        <listitem><para>Do not print column headers.
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-1</option></term>

        <listitem><para>Show information of a single coredump only,
        instead of listing all known coredumps. </para></listitem>
      </varlistentry>

      <varlistentry>
        <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
        journal.</para></listitem>
      </varlistentry>

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

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

      <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" />

    </variablelist>

    <para>The following commands are understood:</para>

    <variablelist>
      <varlistentry>
        <term><command>list</command></term>

        <listitem><para>List coredumps captured in the journal
        matching specified characteristics. If no command is
        specified, this is the implied default.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><command>info</command></term>

        <listitem><para>Show detailed information about coredumps
        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
        output, unless an output file is specified with
        <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>
      </varlistentry>

    </variablelist>

  </refsect1>

  <refsect1>
    <title>Matching</title>

    <para>A match can be:</para>

    <variablelist>
      <varlistentry>
        <term><replaceable>PID</replaceable></term>

        <listitem><para>Process ID of the
        process that dumped
        core. An integer.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><replaceable>COMM</replaceable></term>

        <listitem><para>Name of the executable (matches
        <option>COREDUMP_COMM=</option>). Must not contain slashes.
        </para></listitem>
      </varlistentry>

      <varlistentry>
        <term><replaceable>EXE</replaceable></term>

        <listitem><para>Path to the executable (matches
        <option>COREDUMP_EXE=</option>). Must contain at least one
        slash. </para></listitem>
      </varlistentry>

      <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>
      </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
    failure.
    </para>
  </refsect1>

  <refsect1>
    <title>Examples</title>

    <example>
      <title>List all the coredumps of a program named foo</title>

      <programlisting># coredumpctl list foo</programlisting>
    </example>

    <example>
      <title>Invoke gdb on the last coredump</title>

      <programlisting># coredumpctl gdb</programlisting>
    </example>

    <example>
      <title>Show information about a process that dumped core,
      matching by its PID 6654</title>

      <programlisting># coredumpctl info 6654</programlisting>
    </example>

    <example>
      <title>Extract the last coredump 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>
    </example>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <citerefentry><refentrytitle>systemd-coredump</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>coredump.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
      <citerefentry project='man-pages'><refentrytitle>gdb</refentrytitle><manvolnum>1</manvolnum></citerefentry>
    </para>
  </refsect1>

</refentry>
