Coretrace is a lightweight tool for debugging of embedded Linux applications. It works by analysing core files from crashed applications and outputs a short plain-text backtrace, suitable for putting into logfiles.

The basic idea is to let the failing unit do self analysis of core files. When your remote application crashes it would of course be nice if one could get the whole core home to do some real debugging with e.g. gdb, but unfortunately this is not an option for many embedded systems. Your upstream bandwidth might be to limited, the central management software may perhaps don't support binary data or the customer might simply not like passing files from his network around the globe. In any of these cases coretrace will probably be a "good enough" tradeoff. It's not a tool used in the early development stage but rather in maintenance. Being a utility in production systems it can be used for long term stability tests or tracking down rare crashes.

Non-interactive small-sized embedded systems is the primary target, thus small footprint is of major concern, it will be stored on flash. Currently the compiled size is approximately 20 kb.

Basic usage

screenshot thumb
Screenshot, read explanation of the output in tips below.

Automatic usage

Kernel v2.6.19 and later can be configured to invoke a core file analyzer automaticaly when a crash occur. There is no need to actually write the core file to disk any more, instead one can have it piped to the standard input of coretrace in real-time and have the resulting backtrace end up in the syslog. Read core(5) and "Piping core dumps to a program" for additional information. Note: you need to execute these commands as the root user.

Supported platforms

Runs on x86, x86-64 (AMD64), ARM, PowerPC and Etrax (cris) Linux systems.



Get your copy here



coretrace is GPL.



Bugs / known issues

Help is appreciated


Help is appreciated

Tux Valid HTML 4.01!