What Is CTrace?
CTrace is a fast, lightweight trace/debug C library.
It was specifically written for use in a multi-threaded
application, though it will work just fine
in a single threaded C application.
A trace/debug library has an interface of macros or functions
which outputs the contents of program variables as the application
is running. The trace calls may be made at user-defined levels.
It may also be required to have
trace functions only called on a particular thread or logical unit
of the application.
Isn't that what debuggers are for? Well, yes,
though debuggers can be kind of tricky to use when an application
is running across multiple threads. Also, once an application is
deployed, for example on an embedded system, using debuggers becomes
impractical. In this case, a remote protocol could turn tracing on
for parts of the application, and the results may be returned either
as a stream, or output to a file on the remote system, and collected
- Well documented
- Fast, ligthweight tracing
- Support for turning tracing on and off as required
- Support for turning trace levels on and off independantly
- Support for adding and removing trace threads
- Ability to turn individual thread traces on and off in isolation
- Ability to trace logical software units in isolation
CTrace is currently out there in the BSD License. I switched to this license 'cos
as I understand the license, it enables the library to be used commercially with
If you would like a feature added or an existing feature altered, please
make a request or suggestion through the CTrace Forums or by emailing
the CTrace project team.