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.
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.
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.
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.
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.
Release Notes: This version adds the buffered output stream class for serial devices (sttybuf). Using an sttybuf object, you can output LDP headers and trace data to any kind of serial device (RS-232, RS-485, USB, terminals, pseudoterminals, etc.). Of course, you can use such objects for generic data as well. The csdbg::style class API and implementation was completed and other maintenance jobs carried out.
Release Notes: This minor version update provides libcsdbg users with new LDP client examples, compatible with the latest jTracer release (1.02). The LDP architecture was changed to support multiple messages (traces) to be sent through a unique keepalive (session) socket.
Release Notes: This version completes the parser API. A parser can use any grammar (POSIX extended regular expressions) to parse and tokenize any structured text. The default grammar defines a libcsdbg C++ stack trace, and can be used to perform trace syntax highlighting for VT100 terminals (XTerm, RXVT, GNOME terminal, etc.). The default VT100 highlighter uses custom styles that describe how to render each type of token (function name, C++ keyword, C++ integral type, etc.). This is implemented using the new classes csdbg::dictionary and csdbg::style.
Release Notes: This release adds a trace syntax highlighter compatible with VT100 terminals (XTerm, RXVT, Gnome Terminal, etc.). With this feature, libcsdbg enters the 1.2 milestone.
Release Notes: This version completes the csdbg::plugin API by adding support for the C++ ABI. Users can now load DSO plugins which link their callbacks with C++ linking. The plugin object will mangle the callback name and successfully resolve it no matter its namespace and/or class scope. This release adds the base code for a stack trace syntax parser/analyzer. An example was added to demonstrate the plugin mechanism to the full. This example uses the new mod_callgraph.so (example/mod_callgraph.cpp) example plugin module to construct and print the entire call graph (one graph per thread) of an instrumented process.