Gimli is an Open Source (3-clause BSD License) crash tracing and analysis framework that provides watchdog and tracing support for Linux, Solaris and Darwin.
The watchdog feature enables the process to be respawned in the case of a fault (such as a crash or a hang), and the tracing feature allows collection of information from the faulting process that will allow a software developer to diagnose and resolve the problem, perhaps without having to invoke traditional debugging tools.
While these capabilities are not earth shattering, the Gimli solution tackles this from the perspective of an automated but extensible debugger. The default tracing behavior is to output a stack trace of all threads in the process, unwinding using DWARF-3 debugging information (with traces superior to GDB in some cases). A Gimli aware software package can provide gimli modules that will be run during tracing to gather additional information from the target, for example, to dump out the contents of a circular log buffer as part of the trace file.
This session is aimed at Developers and Systems Administrators and shows how to apply Gimli to your processes, be they written in C or scripted in Perl, PHP or whatever, to take advantage of its watchdog and tracing capabilities. We’ll also touch on creating gimli modules for augmentation of trace files.