Crash handler

This page describes Sony's embedded crash_handler program.

This is a new crash_handler written by Tim Bird, of Sony, for use in embedded Linux products.

It is a derivative of Android debuggerd crash-handler and debug aid program, and is licensed under the Apache license.

Description
Crash_handler is a crash report generator for embedded Linux systems. It uses features of recent Linux kernels to capture process crash events, and save off individual crash reports, as well as to record information about the overall crash history of a device.

It is originally based on Android's debuggerd, which performs similar functionality. However, debuggerd requires that a dedicated debugging process be running permanently on the system, where crash_handler does not.

When a crash occurs, crash_handler collects information about the dying process from /proc, possibly from the kernel message log, and by using ptrace to query the process memory image. This information is saved in a crash report. Up to 10 crash_reports are saved, before the oldest ones start being overwritten. Also, a crash journal file is maintained, which records information about the crash history of the device.

Usage Guide

 * Build using your cross-compiler, and place somewhere on your target system
 * Install by running the following as root: 'crash_handler --install'
 * This sets /proc/sys/kernel/core_pattern with the correct string
 * Output:
 * The crash journal is at: /tmp/crash_journal
 * Individual crash reports are in: /tmp/crash_reports/, and have the names 'crash_report_0x', where x is a number from 0 to 9

Resources
To discuss this crash handler, use the celinux-dev mailing list. See http://lists.celinuxforum.org/mailman/listinfo/celinux-dev