Coretrace is a lightweight tool for debugging embedded Linux applications. It works by analyzing 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 and report those back home during device maintenance lifetime. Non-interactive small-sized embedded systems are the primary targets, so small footprint is of major concern, since it will be stored on flash. Currently the compiled size is approximately 20 kb.
libcsdbg is a C++ exception stack tracer. When an exception is thrown, caught, and handled, libcsdbg offers the tools to create and process the exception stack trace, the path the exception has propagated up the call stack, unwinding it up to the section were it was handled. The traces are detailed with demangled function signatures and additional addr2line information (the source code file and line from which each function was called). libcsdbg can use all the well-known objective code file formats (a.out, elf, coff, ecoff, etc.) and can easily be used as the base for your own instrumentation code. libcsdbg transparently loads the symbol tables of the chosen dynamic libraries and of the executable, demangles function symbols to complete signatures, and binds function names to runtime addresses (even for the DSO symbols).
jTracer is a visualization tool for libcsdbg. When libcsdbg creates a stack trace for a caught exception, a thread, or a process-wide stack trace dump, it can be configured to broadcast the trace data through TCP/IP (UDP/IP, RS-232, USB, etc. are under development). jTracer catches those data and visualizes them to the user, sorted and ordered by TCP/UDP/IP address/port (or serial port), process ID, and executable, thread, and timestamp. It's particularly useful when you're doing cross-development and your target platform has no resources to visualize output. The rationale behind the development of jTracer is similar to gdb/gdbserver functionality.