libcwd: The C++ Debugging Support Library - Reference Manual
Author: Carlo Wood
Description: C++ debugging support library with ostream debug output
Keywords: libcwd, debug output, debug facility, debug channel, object orientation, OO, C++, nested debug output, ostream, memory allocation, debugging, source file and line number

Main Page Reference Manual Namespace List Compound List Namespace Members Compound Members File Members

# The Output Device (Debug Object)
[Writing Debug Output]

Collaboration diagram for The Output Device (Debug Object):

## Classes
class | libcwd::debug_ct
| The Debug Object class, this object represents one output device (`ostream`). More...

## Detailed Description

Libcwd declares a debug class (debug_ct) which can be assigned an `ostream` to which debug output will be written. Such a debug object can dynamically be turned on and off . When the debug object is turned off, no debug output is written to its ostream ; in fact, the data that otherwise would be written is not even evaluated (see example). The debug code can also completely be omitted, by not defining the macro CWDEBUG.

Libcwd defines and uses only one debug object: libcw_do (the _do stands for Debug Object). However, it is possible to create more debug objects which would allow one to write debug output to two or more different output devices at the same time (for instance, the screen and a file).

For each debug object it is possible to set a margin and a marker string and to set the size of the current indentation. The methods used for setting or changing these prefix formatting attributes are listed in Format Of The Debug Output.