diamon / minicoredumper

Generate minimal and customized core dump files on Linux.
https://linutronix.de/minicoredumper
Other
45 stars 13 forks source link

minicoredumper

This project is maintained by:

Linutronix

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
$ echo 0x7fffffff | sudo tee /proc/sys/kernel/core_pipe_limit

Documentation

The following man pages are provided with this package:

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