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

Special Functions And Utilities
[Writing Debug Output]


Classes

class  buf2str
 Print a (char) buffer with a given size to a debug ostream, escaping non-printable characters. More...

class  char2str
 Print a char to a debug ostream, escaping non-printable characters as needed. More...

interface  cwprint
 Print an object to a debug stream without needing an operator<<. More...

interface  cwprint_using
 Print an object to an ostream using an arbitrary method of that object. More...


Defines

#define ForAllDebugChannels(STATEMENT)
 Looping over all debug channels.

#define ForAllDebugObjects(STATEMENT)
 Looping over all debug objects.


Functions

channel_ct * libcwd::find_channel (char const *label)
 Find debug channel with label label.

void libcwd::list_channels_on (debug_ct &debug_object)
 List all debug channels to a given debug object.


Define Documentation

#define ForAllDebugChannels STATEMENT   ) 
 

Looping over all debug channels.

The macro ForAllDebugChannels allows you to run over all debug channels.

For example,

 ForAllDebugChannels( while (!debugChannel.is_on()) debugChannel.on() );

which turns all channels on.  And

 ForAllDebugChannels( if (debugChannel.is_on()) debugChannel.off() );

which turns all channels off.

#define ForAllDebugObjects STATEMENT   ) 
 

Looping over all debug objects.

The macro ForAllDebugObjects allows you to run over all debug objects.

For example,

 ForAllDebugObjects( debugObject.set_ostream(&std::cerr, &cerr_mutex) );

would set the output stream of all debug objects to std::cerr.


Function Documentation

channel_ct * libcwd::find_channel char const *  label  ) 
 

Find debug channel with label label.

Returns:
A pointer to the debug channel object whose name starts with label.  If there is more than one such debug channel, the object with the lexicographically largest name is returned.  When no debug channel could be found, NULL is returned.

void libcwd::list_channels_on debug_ct &  debug_object  ) 
 

List all debug channels to a given debug object.

Example:

 Dout( list_channels_on(libcw_do) );   // libcw_do is the (default) debug object of libcwd.

Example of output:

DEBUG : Disabled NOTICE : Enabled WARNING : Enabled SYSTEM : Enabled MALLOC : Disabled LLISTS : Disabled KERNEL : Disabled IO : Disabled FOO : Enabled BAR : Enabled

Where FOO and BAR are user defined channels in this example.

Copyright © 2001 - 2004 Carlo Wood.  All rights reserved.