Clone wiki

gimli / Home


Gimli is a crash tracing/analysis framework.

The concept is that an executable can be linked with libgimli to enable watchdog and tracing support. The watchdog feature enables the process to be respawned in the case of a fault (and throttles respawns in the case of persistent problems). The tracing feature allows collection of information from the faulting process that can then be used by the software developer to diagnose and resolve the problem.

Gimli has a modular framework that extends the traces beyond a simple "gstack" capture; modules can be loaded into the tracer based on the mapped objects in the target process, and these can capture specific information into the generated trace file.

Large processes leave large core files, which can be problematic to pull down to a developers system to diagnose, post-mortem. Additionally, it can be challenging to successfully examine core files if the customer system is running different system libraries from the developers system. Furthermore, production environments may mandate that full blown debugging tools must not be installed to minimize risk in the case of intrusion, and this prevents analysis on the affected system.

Gimli avoids these problems by performing time-of-death analysis and capturing that information in a human readable form.

documentation on the glider process

documentation on the monitor process

View the Gimli Presentation

Where does the name Gimli come from?

Gimli deals with the ELF file format and the DWARF debugging information format. Well-known fantasy literature associates the name "Gimli" with Elves and Dwarves, but less well known is an event that took place in Gimli, Manitoba, where an aircraft ran out of fuel and needed to make an emergency landing.