ircproxy  The Ultimate Cyborg

debug.h File Reference


Detailed Description

This file contains the declaration of debug related macros, objects and functions.

Definition in file debug.h.

#include <libcwd/debug.h>
#include "debug_ostream_operators.h"

Go to the source code of this file.

Namespaces

namespace  debug
namespace  debug::channels
namespace  debug::channels::dc

Classes

struct  debug::InvisibleAllocations
 Interface for marking scopes of invisible memory allocations. More...
struct  debug::Indent
 Interface for marking scopes with indented debug output. More...
struct  debug::SecondaryConnection
class  debug::TeeBuf
class  debug::TeeStream

Defines

#define ASSERT(x)   LIBCWD_ASSERT(x)
 Assert if debugging is turned on.
#define DEBUGCHANNELS   ::debug::channels
 The namespace in which the dc namespace is declared.
#define DoutEntering(cntrl, data)
 Debugging macro.

Functions

void debug::init (void)
 Initialize debugging code from main.
void debug::init_thread (void)
 Initialize debugging code from new threads.
void debug::dump_hex (libcwd::channel_ct const &channel, unsigned char const *buf, size_t size)
 Write a hexadecimal and ascii dump of a buffer to a given debug channel.


Define Documentation

#define ASSERT (  )     LIBCWD_ASSERT(x)

Assert if debugging is turned on.

Definition at line 62 of file debug.h.

Referenced by NickData::accountname(), Target::add_channel(), Nick::add_channel(), Target::add_joined_nick(), ClientSession::add_private_target(), ServerSession::auth_ping_argument(), Identity::authentication_password(), ServerConnection::change_state(), Channel::Channel(), Network::char_to_flag(), Identity::client_session(), Target::clientside_get_channel(), ServerConnection::connect(), ClientSession::create_private_target(), ServerSession::current_who_request(), Authentication::decode_pass(), Authentication::decode_user(), ClientSession::del_private_target(), UserAnswerEventRequestQueue::destroy_requests(), MatcherEventRequestQueue::destroy_requests(), ServerSession::detected_network(), ServerConnection::disconnect(), ServerConnection::do_connect(), Identity::end_secondary_server_connection(), Network::flag_to_char(), NickData::flags(), ServerSession::found_network_name(), Target::get_joined_nick(), ServerSession::get_nick(), ClientSession::get_nick(), PrivateTarget::handle_command(), NickData::hopcount(), NickData::hostname(), Identity::Identity(), NickData::idletime(), Index< ServerSession >::Index(), MessageIn::init(), Network::init_who_flag_table(), NickPair::inuse(), ServerConnection::invisible_event(), NickData::ip(), is_channel(), MatchRequestList::is_match(), make_lowercase_usermode_mask(), make_uppercase_usermode_mask(), WhoRequest::mask_target(), Matcher_regexp::Matcher_regexp(), ServerConnection::my_serverside_nick_name(), Identity::mynick(), PrivateTarget::new_client_message_received(), Identity::new_client_message_received(), Channel::new_client_message_received(), ServerSession::new_message_received(), Identity::new_server_message_received(), Nick::Nick(), Identity::notice_target(), MessageIn::numeric(), Flags::operator=(), Prefix::out_prefix(), ServerSession::pop_who_request(), Prefix::Prefix(), MessageIn::prefix_part(), MessageIn::prefix_str(), ClientSession::queue_msg_me_as_is(), NickData::realname(), ServerConnection::received_first_umode(), ServerConnection::send_pong_and_mode(), ServerSession::send_rejoins(), ServerSession::send_who_write_event(), PersistXML::serialize(), ServerConnection::server(), NickData::servername(), Target::serverside_add_channel(), Target::serverside_get_channel(), Nick::serverside_nick_changed_to(), ServerSession::set_disconnect_reason(), IdentityReference::set_identity(), ServerConnection::set_my_serverside_nick_name(), Nick::set_network(), Identity::start_secondary_server_connection(), Target::sub_channel(), Nick::sub_channel(), Watched< UserModeMask >::sub_event_server(), ServerConnection::successful_connection(), Network::targets(), MatcherEventRequestQueue::trigger(), MessageIn::uppercase_command(), NickData::username(), MessageOut::write_to(), Counter::~Counter(), and Target::~Target().

#define DEBUGCHANNELS   ::debug::channels

The namespace in which the dc namespace is declared.

Libcwd demands that this macro is defined before <libcwd/debug.h> is included and must be the name of the namespace containing the dc (Debug Channels) namespace.

See also:
debug::channels::dc

Definition at line 73 of file debug.h.

Referenced by debug::dump_hex().

#define DoutEntering ( cntrl,
data   ) 

Value:

int __ircproxy_debug_indentation = 2;                                                                                   \
  {                                                                                                                     \
    LIBCWD_TSD_DECLARATION;                                                                                             \
    if (LIBCWD_DO_TSD_MEMBER_OFF(::libcwd::libcw_do) < 0)                                                               \
    {                                                                                                                   \
      ::libcwd::channel_set_bootstrap_st __libcwd_channel_set(LIBCWD_DO_TSD(::libcwd::libcw_do) LIBCWD_COMMA_TSD);      \
      bool on;                                                                                                          \
      {                                                                                                                 \
        using namespace LIBCWD_DEBUGCHANNELS;                                                                           \
        on = (__libcwd_channel_set|cntrl).on;                                                                           \
      }                                                                                                                 \
      if (on)                                                                                                           \
        Dout(cntrl, "Entering " << data);                                                                               \
      else                                                                                                              \
        __ircproxy_debug_indentation = 0;                                                                               \
    }                                                                                                                   \
  }                                                                                                                     \
  debug::Indent __ircproxy_debug_indent(__ircproxy_debug_indentation);
Debugging macro.

Definition at line 214 of file debug.h.

Referenced by ISupport::add(), Target::add_channel(), Target::add_joined_nick(), AuthState::auth_notice_fin_hostname(), AuthState::auth_notice_fin_ident(), AuthState::auth_notice_looking_up_hostname(), AuthState::auth_notice_looking_up_ident(), AuthState::auth_timeout(), Nick::clientside_nick_changed_to(), ServerConnection::connect(), ClientSession::create_private_target(), ServerSessionInput::decode(), Authentication::decode_pass(), Authentication::decode_user(), ServerConnection::delayed_connect(), ServerSession::detected_network(), ServerConnection::disconnect(), ServerConnection::do_connect(), ServerConnection::error_message_received(), ClientSession::fatal_error(), Queue::flush(), ServerSession::force_quit(), Target::get_joined_nick(), Application::handle_signal(), NickPair::inuse(), ServerConnection::invisible_event(), ServerSession::network_connection_terminated(), QuestionTarget::new_client_message_received(), PrivateTarget::new_client_message_received(), NoticeTarget::new_client_message_received(), Nick::new_client_message_received(), Identity::new_client_message_received(), Channel::new_client_message_received(), ServerSession::new_message_received(), ClientSession::new_message_received(), UserMode::new_server_message_received(), Nick::new_server_message_received(), Identity::new_server_message_received(), Channel::new_server_message_received(), NickPair::nick_received(), ClientSession::process_message(), ClientSession::queue_message(), ServerSession::queue_msg(), ClientSession::queue_msg(), ServerConnection::received_first_umode(), Identity::received_network_domain_answer(), Authentication::received_nick_and_user(), ServerConnection::received_server_port_answer(), Authentication::send_authentication(), NickPair::send_nick(), ServerConnection::send_pong_and_mode(), ServerSession::send_rejoins(), ServerSession::send_who_write_event(), Nick::serverside_nick_changed_to(), Target::sub_channel(), UserAnswerEventRequestQueue::trigger(), MatcherEventRequestQueue::trigger(), and MessageOut::write_to().


Copyright © 2005-2007 Carlo Wood.  All rights reserved.