Projects / libcsdbg


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).

Operating Systems

Last announcement

jTracer 1.02 released 04 Feb 2014 22:30

This version is a lot different from previous ones, because the LDP (Libcsdbg Debug Protocol) server can now receive multiple LDP messages (traces) through a single (session) socket. Version 1.22 of libcsdbg released today will also reflect these changes in the examples that implement LDP clients

Recent releases

  •  20 Apr 2014 14:48

    Release Notes: This edition brings a major feature: the instrumentation filters. By using such filters you can easily ommit namespaces, classes, single methods, or entire modules from stack tracing (or other profiling), using POSIX extended regular expressions.

    •  03 Apr 2014 00:36

      Release Notes: This major maintenance contains the final form of all current features and documentation. The documentation overview, API reference, and PDF user manual were updated with all of the latest major API changes and the new features.

      •  20 Mar 2014 00:53

        Release Notes: This is a maintenance version that fixes bugs, rectifies features, unifies the API, adds useful methods, and enforces code uniformity. Buffered output stream classes were further enhanced and made even more reliable and easy to use.

        •  12 Mar 2014 00:32

          Release Notes: This release brings many significant changes, the most important being the removal of the class csdbg::name_space and the addition of the class csdbg::process. This class encapsulates the process namespace (loaded symbol tables) and thread list, making the csdbg::tracer API a lot simpler. All examples and tutorial executables, DSO, and plugin modules were moved to a separate package (libcsdbg-extra). This release adds lots of needed checks and functionality to the buffered output stream classes and fixes some minor bugs.

          •  21 Feb 2014 00:42

            Release Notes: This release optimizes the library data structures, introducing doubly-linked lists (class chain). The implementation is done using XOR linking, so the memory footprint is not increased. Node indexing time and memory references are greatly optimized by this, especially in large symbol table lookups, dramatically minimizing library overhead. This subversion is the first in a series that will introduce optimizations and code, example and documentation cleanup, maintenance and beautifications. The target is to standardize and finalize all current features before porting libcsdbg to other platforms.

            Recent comments

            18 Feb 2014 13:32 alexmatra

            excellent project

            06 Nov 2013 12:46 koukidasn

            Extremely helpful for debugging c++. I found it very easy to use with multi-threading and dynamic libraries


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.