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

Classes | Macros | Functions
Special Functions And Utilities
Writing Debug Output
Collaboration diagram for Special Functions And Utilities:

Classes

class   libcwd::buf2str
  Print a (char) buffer with a given size to a debug ostream, escaping non-printable characters. More...
 
class   libcwd::char2str
  Print a char to a debug ostream, escaping non-printable characters as needed. More...
 
interface   libcwd::cwprint
  Print an object to a debug stream without needing an operator<<. More...
 
interface   libcwd::cwprint_using
  Print an object to an ostream using an arbitrary method of that object. More...
 

Macros

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

Functions

channel_ct *  libcwd::find_channel (char const *label)
  Find debug channel with label label. More...
 
void  libcwd::list_channels_on (debug_ct &debug_object)
  List all debug channels to a given debug object. More...
 

Detailed Description

Macro Definition 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.

References libcwd::channels::dc::always, libcwd::channels::dc::bfd, libcwd::channels::dc::malloc, libcwd::noprefix_cf, libcwd::channel_ct::off(), and libcwd::channel_ct::on().

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

AltStyle によって変換されたページ (->オリジナル) /