CTrace Features

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 via ftp.

CTrace Features

  • 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 no restrictions.

Feature Requests

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.

©2003 Cal McPherson