/minicoredumper

Generate minimal and customized core dump files on Linux.

Primary LanguageCOtherNOASSERTION

minicoredumper
==============

Overview
--------

    minicoredumper provides an alternate core dump facility for Linux
    to allow minimal and customized crash dumps. It is composed
    primarily of 3 parts:

      1. minicoredumper - a customizable core dump application to replace
                          the default Linux core dump facility

      2. libminicoredumper - a library allowing applications to register
                             data for dumping

      3. minicoredumper_regd - a service to allow multiple applications
                               to dump their data on demand or if any of
                               the applications crash

License
-------

    Please view the file COPYING for copyright and license information.

Installation
------------

    The minicoredumper package uses autotools:

      $ ./configure
      $ make
      $ sudo make install

    In the "etc" directory there are sample configuration files.

    To inform Linux to use the minicoredumper for the core dump facility:

      $ echo '|/usr/sbin/minicoredumper %P %u %g %s %t %h %e' | \
             sudo tee /proc/sys/kernel/core_pattern

Documentation
-------------

    The following man pages are provided with this package:

      libminicoredumper (7)
      minicoredumper (1)
      minicoredumper.cfg.json (5)
      minicoredumper.recept.json (5)
      minicoredumper_regd (1)
      minicoredumper_trigger (1)
      coreinject (1)
      mcd_dump_data_register_bin (3)
      mcd_dump_data_register_text (3)
      mcd_dump_data_unregister (3)

Support
-------

    Website: https://linutronix.de/minicoredumper

    Mailing List: https://lists.linutronix.de/mailman/listinfo/minicoredumper

    Issue Tracker: https://github.com/diamon/minicoredumper/issues

    Git Repository: https://github.com/diamon/minicoredumper

Demo
----

    This packages provides an example application to test the
    minicoredumper. The example application is not built by default.
    This must be activated with the --with-minicoredumper_demo
    argument for configure.

    The example application minicoredumper_demo uses libminicoredumper
    to register variables. If it is run with no command line arguments,
    it crashes deliberately, which should trigger the minicoredumper.
    The example also registers with minicoredumper_regd. When an
    application crashes, the registered data of the example application
    can be dumped as well (depending on the recept file).

    The demo can be performed by running the example program twice. One
    instance that registers itself, waits, and exits gracefully, and
    another instance that crashes. Assuming minicoredumper is installed
    and activated, minicoredumper_regd is running and "live_dumper" is
    enabled in the recept file, the demo can be executed with the
    following commands:

      $ minicoredumper_demo 6 & sleep 3 && minicoredumper_demo

    This will start one instance of minicoredumper_demo in the background
    that will gracefully exit after 6 seconds. 3 seconds after starting
    the first instance, a second instance of minicoredumper_demo is
    started in the foreground that will crash immediately.

    In the minicoredumper "base_dir" there should now be a directory
    containing a core file and the dump data from the second (crashed)
    instance of minicoredumper_demo. In that directory there should also
    be the dump data from the first instance of minicoredumper_demo
    (that had a graceful exit).