DebugUtils.h File Reference

#include <cstdio>
#include <cstdlib>
#include "FatalSignals.h"
#include "../memory/Memory.h"

Go to the source code of this file.

Namespaces

namespace  oasys

Classes

struct  static_assert_test< x >
 Compile time static checking (better version, from Boost) Take the sizeof() of an undefined template, which will die. More...
struct  STATIC_ASSERTION_FAILURE< true >
class  oasys::Breaker

Defines

#define ASSERT(x)
#define NOTREACHED
#define NOTIMPLEMENTED
#define delete_z(_obj)   do { delete _obj; _obj = 0; } while (0)
#define STATIC_ASSERT(_x, _what)
#define NO_COPY(_Classname)   private: _Classname(const _Classname& other)
#define NO_ASSIGN(_Classname)   private: _Classname& operator=(const _Classname& other)
#define NO_ASSIGN_COPY(_Classname)

Functions

void oasys_break ()
 This is outside because it's annoying to type such a long name in gdb.


Define Documentation

#define ASSERT (  ) 

Value:

do { if (! (x)) {                                                   \
        fprintf(stderr, "ASSERTION FAILED (%s) at %s:%d\n",             \
                (#x), __FILE__, __LINE__);                              \
        ::oasys::Breaker::break_here();                                 \
        ::oasys::FatalSignals::die();                                   \
    } } while(0);

Definition at line 26 of file DebugUtils.h.

Referenced by dtn::TCPConvergenceLayer::Connection::accept(), dtn::BluetoothConvergenceLayer::Connection::accept(), oasys::BerkeleyDBStore::acquire_table(), dtn::BundleList::add_bundle(), oasys::InitSequencer::add_extra_deps(), dtn::BundleOfferList::add_offer(), oasys::RefCountedObject::add_ref(), dtn::Bundle::add_ref(), oasys::InitSequencer::add_step(), dtn::ProphetTLV::add_tlv(), oasys::IO::adjust_timeout(), SparseArray< _Type >::allocate(), oasys::StringBuffer::append(), oasys::StringAppender::append(), dtn::BundlePayload::append_data(), oasys::StringBuffer::append_int(), dtn::ProphetDictionary::assign(), oasys::IPSocket::async_connect_result(), oasys::BluetoothSocket::async_connect_result(), oasys::ExpandableBuffer::at(), dtn::BundleOfferList::begin(), dtn::ProphetTable::begin(), oasys::BluetoothSocket::bind(), dtn::BluetoothConvergenceLayer::Connection::bt_lparams(), dtn::ProphetBundleQueue::bundle_list(), dtn::BundleTLV::BundleTLV(), dtn::BundleActions::cancel_bundle(), oasys::ExpatXMLParser::character_data(), dtn::StreamConvergenceLayer::Connection::check_completed(), dtn::FragmentManager::check_completed(), dtn::StreamConvergenceLayer::Connection::check_keepalive(), dtn::CLConnection::check_unblock_link(), dtnsim::SimContact::chew_message(), dtn::Registration::cleanup_expiration_timer(), oasys::OnOffNotifier::clear(), dtn::Link::close(), oasys::IPSocket::close(), oasys::BluetoothSocket::close(), dtnsim::SimContact::close_contact(), dtn::ConnectionConvergenceLayer::close_contact(), dtn::CLConnection::close_contact(), dtn::BundleActions::close_link(), oasys::BluetoothSocket::configure(), dtn::TCPConvergenceLayer::Connection::connect(), oasys::BluetoothSocket::connect(), dtn::BluetoothConvergenceLayer::Connection::connect(), oasys::StreamBuffer::consume(), dtn::PrimaryBlockProcessor::consume(), dtn::PreviousHopBlockProcessor::consume(), dtn::PayloadBlockProcessor::consume(), oasys::COWIoVec::consume(), dtn::BundleProtocol::consume(), dtn::BlockProcessor::consume(), dtn::BlockProcessor::consume_preamble(), dtn::CLConnection::contact_up(), dtn::BundleList::contains(), oasys::COWIoVec::copy(), dtn::EndpointID::copyto(), dtn::Announce::create_announce(), dtn::LinkBlockSet::create_blocks(), dtn::ProphetTLV::create_bundle(), dtnsim::Connectivity::create_conn(), dtn::CustodySignal::create_custody_signal(), dtn::Link::create_link(), dtn::BundleStatusReport::create_status_report(), oasys::DurableStore::create_store(), dtn::PrimaryBlockProcessor::debug_dump_dictionary(), dtn::BundleStore::del(), dtn::BundleList::del_bundle(), oasys::RefCountedObject::del_ref(), oasys::FileSystemStore::del_table(), oasys::BerkeleyDBStore::del_table(), dtn::FragmentManager::delete_fragment(), dtn::ProphetTLV::deserialize(), dtn::BundleTLV::deserialize(), dtn::ProphetController::do_init(), oasys::Log::do_init(), oasys::ScopeLockIf::do_lock(), oasys::ScopeLock::do_lock(), dtn::TCPConvergenceLayer::dump_interface(), dtn::BluetoothConvergenceLayer::dump_interface(), dtn::TCPConvergenceLayer::dump_link(), dtn::StreamConvergenceLayer::dump_link(), dtn::ConnectionConvergenceLayer::dump_link(), dtn::BluetoothConvergenceLayer::dump_link(), oasys::Log::dump_rules(), encode(), encoding_len(), dtn::BundleOfferList::end(), dtn::ProphetTable::end(), oasys::ExpandableBuffer::end(), oasys::ExpatXMLParser::end_element(), dtn::ProphetEncounter::enqueue_bundle_tlv(), dtn::ProphetEncounter::enqueue_hello(), dtn::ProphetEncounter::enqueue_rib(), dtn::ProphetEncounter::enqueue_ribd(), oasys::OpenFdCache< _Key, _CloseFcn >::evict(), oasys::Cache< _Key, _Val, _EvictFcn >::evict(), dtn::TestCommand::exec(), dtnsim::Simdtn2Command::exec(), dtn::RegistrationCommand::exec(), oasys::SMTPUtils::extract_address(), oasys::FileSystemIterator::FileSystemIterator(), oasys::StreamBuffer::fill(), dtn::BlockProcessor::finalize(), dtn::ProphetDictionary::find(), dtn::ProphetTable::find(), dtn::CLConnection::find_contact(), dtn::ProphetStats::find_entry(), dtn::ContactManager::find_link_to(), oasys::Log::find_rule(), dtn::LinkStateGraph::findNextHop(), dtn::StreamConvergenceLayer::Connection::finish_bundle(), dtn::StreamConvergenceLayer::finish_init_link(), dtn::BlockInfo::flags(), dtn::FloodBundleRouter::FloodBundleRouter(), dtn::Registration::force_expire(), dtnsim::GlueNode::forward_event(), dtn::ProphetEncounter::fwd_to_nexthop(), dtn::FwdDeciderGRTR::FwdDeciderGRTR(), dtn::FwdDeciderGRTRPLUS::FwdDeciderGRTRPLUS(), dtn::FwdStrategyCompGRTRMAX::FwdStrategyCompGRTRMAX(), dtn::FwdStrategyCompGRTRSORT::FwdStrategyCompGRTRSORT(), dtn::UnknownBlockProcessor::generate(), dtn::PrimaryBlockProcessor::generate(), dtn::PreviousHopBlockProcessor::generate(), dtn::APIBlockProcessor::generate(), dtn::BundleProtocol::generate_blocks(), dtn::BlockProcessor::generate_preamble(), oasys::BerkeleyDBTable::get(), oasys::OpenFdCache< _Key, _CloseFcn >::get_and_pin(), oasys::BufferedInput::get_char(), oasys::FileSystemTable::get_common(), dtn::BundleTimestamp::get_current_time(), oasys::MemoryIterator::get_key(), oasys::FileSystemIterator::get_key(), oasys::BerkeleyDBIterator::get_key(), oasys::Regex::get_match(), oasys::BerkeleyDBStore::get_meta_table(), oasys::IO::get_nonblocking(), oasys::TextUnmarshal::get_num(), oasys::InitSequencer::get_step(), oasys::FileSystemStore::get_table(), oasys::DurableStore::get_table(), oasys::BerkeleyDBStore::get_table(), oasys::TextUnmarshal::get_textcode(), oasys::gethostbyname(), dtntunnel::TCPTunnel::handle_bundle(), dtntunnel::DTNTunnel::handle_bundle(), dtn::BundleDaemon::handle_bundle_free(), dtn::LinkStateRouter::handle_bundle_received(), dtn::BundleDaemon::handle_bundle_received(), dtn::ProphetEncounter::handle_bundle_tlv(), dtn::BundleDaemon::handle_bundle_transmitted(), dtn::StreamConvergenceLayer::Connection::handle_contact_initiation(), dtn::BundleDaemon::handle_custody_timeout(), dtn::StreamConvergenceLayer::Connection::handle_data_todo(), dtn::ProphetEncounter::handle_hello_tlv(), dtn::BundleDaemon::handle_link_available(), dtn::ProphetRouter::handle_link_created(), dtn::FloodBundleRouter::handle_link_created(), dtn::BundleDaemon::handle_link_state_change_request(), dtn::BundleDaemon::handle_link_unavailable(), dtn::IPAnnounce::handle_neighbor_discovered(), dtn::BluetoothAnnounce::handle_neighbor_discovered(), dtn::StreamConvergenceLayer::Connection::handle_poll_timeout(), dtn::ProphetEncounter::handle_prophet_tlv(), dtn::APIClient::handle_recv(), dtn::ProphetEncounter::handle_rib_tlv(), dtn::StreamConvergenceLayer::Connection::handle_send_bundle(), dtn::APIClient::handle_unbind(), dtn::APIClient::handle_unregister(), oasys::ExpandableBuffer::incr_len(), oasys::TimerThread::init(), dtn::DTNServer::init(), dtn::BlockProcessor::init_block(), dtnsim::SimConvergenceLayer::init_link(), oasys::IPSocket::init_socket(), oasys::BluetoothSocket::init_socket(), dtn::TCPConvergenceLayer::Connection::initialize_pollfds(), dtn::BluetoothConvergenceLayer::Connection::initialize_pollfds(), dtn::StreamConvergenceLayer::Connection::initiate_contact(), dtn::ProphetDictionary::insert(), oasys::TclCommandInterp::instance(), oasys::Singleton< _Class, false >::instance(), oasys::Singleton< _Class, true >::instance(), dtnsim::Connectivity::instance(), dtn::TCPConvergenceLayer::interface_down(), dtn::BluetoothConvergenceLayer::interface_down(), oasys::BufferedInput::internal_read(), dtn::BundlePayload::internal_write(), oasys::IOHandlerBase::interrupt_from_io(), dtn::ProphetDictionary::is_assigned(), oasys::Thread::join(), dtn::Link::Link(), oasys::TCPServer::listen(), oasys::BluetoothServer::listen(), dtn::GlobalStore::load(), oasys::SpinLock::lock(), oasys::Log::log_multiline(), oasys::PermutationArray::map(), oasys::MmapFile::map(), oasys::InitSequencer::mark_dep(), dtn::WildcardScheme::match(), dtn::TCAScheme::match(), dtn::StringScheme::match(), dtn::DTNScheme::match(), dtn::BundlePayload::memory_data(), dtn::TCPConvergenceLayer::new_connection(), dtn::BluetoothConvergenceLayer::new_connection(), oasys::TypeCollectionInstance< _Collection >::new_object(), oasys::BerkeleyDBIterator::next(), dtn::GlobalStore::next_bundleid(), dtn::GlobalStore::next_regid(), oasys::ExpandableBuffer::nfree(), oasys::Notifier::notify(), dtn::Link::open(), dtn::ConnectionConvergenceLayer::open_contact(), oasys::Ref< _Type >::operator *(), oasys::Ref< _Type >::operator->(), dtn::LinkStateGraph::Vertex::operator<(), oasys::ScopeMalloc::operator=(), oasys::ScopePtr< _Class >::operator=(), oasys::Log::parse_debug_file(), oasys::URL::parse_internal(), dtn::TCPConvergenceLayer::parse_link_params(), dtn::StreamConvergenceLayer::parse_link_params(), dtn::BluetoothConvergenceLayer::parse_link_params(), dtn::TCPConvergenceLayer::parse_nexthop(), dtn::BluetoothConvergenceLayer::parse_nexthop(), dtn::BundlePayload::pin_file(), oasys::IO::poll_multiple(), oasys::IO::poll_with_notifier(), dtn::BlockingBundleList::pop_blocking(), dtn::BundleList::pop_front(), oasys::TimerSystem::pop_timer(), dtn::BundleDaemon::post_and_wait(), dtn::UnknownBlockProcessor::prepare(), dtn::BundleProtocol::prepare_blocks(), dtn::FragmentManager::proactively_fragment(), oasys::XMLMarshal::process(), oasys::TextUnmarshal::process(), oasys::TclListSerialize::process(), dtnsim::SimContact::process(), oasys::Unmarshal::process(), oasys::KeyUnmarshal::process(), oasys::KeyMarshal::process(), oasys::SMTP::process_cmd(), dtn::ProphetEncounter::process_command(), dtn::CLConnection::process_command(), dtn::StreamConvergenceLayer::Connection::process_data(), dtn::FragmentManager::process_for_reassembly(), oasys::KeyMarshal::process_int(), oasys::KeyMarshal::process_int64(), dtn::BundleProtocol::produce(), dtn::BlockProcessor::produce(), dtn::ProphetAck::ProphetAck(), dtn::ProphetBundleQueue::ProphetBundleQueue(), dtn::ProphetController::ProphetController(), dtn::ProphetEncounter::ProphetEncounter(), oasys::BluetoothSocket::prototoa(), oasys::FileSystemTable::put(), oasys::OpenFdCache< _Key, _CloseFcn >::put_and_pin(), dtn::CLConnection::queue_bundle(), dtn::QueueCompLEPR::QueueCompLEPR(), dtn::QueueCompLMOPR::QueueCompLMOPR(), dtn::QueueCompMOPR::QueueCompMOPR(), SparseArray< _Type >::range_write(), oasys::ExpandableBuffer::raw_buf(), oasys::RFCOMMClient::rc_connect(), oasys::BufferedInput::read_bytes(), dtn::BundlePayload::read_data(), dtn::RIBDTLV::read_ras_entry(), oasys::BufferedInput::read_some_bytes(), oasys::StreamBuffer::realloc(), dtn::ConnectionConvergenceLayer::reconfigure_link(), dtn::TCPConvergenceLayer::Connection::recv_data(), dtn::BluetoothConvergenceLayer::Connection::recv_data(), oasys::Log::redirect_stdio(), oasys::TypeCollection::reg(), dtn::BundleProtocol::register_processor(), oasys::BerkeleyDBStore::release_table(), dtn::LinkStateGraph::removeEdge(), oasys::FileIOClient::reopen(), oasys::StreamBuffer::reserve(), oasys::ScratchBuffer< u_char * >::reserve(), dtn::ProphetEncounter::reset_ribd(), oasys::PointerHandle< _PtrType >::restore_and_update(), oasys::FileUtils::rm_all_from_dir(), dtn::BundleDaemon::router(), dtntunnel::TCPTunnel::Connection::run(), dtnsim::Simulator::run(), dtn::ProphetEncounter::run(), dtn::BundleDaemon::run(), oasys::BluetoothServerThread::run(), oasys::TimerSystem::run_expired_timers(), oasys::InitSequencer::run_steps(), oasys::IO::rwdata(), oasys::IO::rwvall(), oasys::ScratchBuffer< u_char * >::ScratchBuffer(), oasys::RateLimitedSocket::send(), dtn::UDPConvergenceLayer::Sender::send_bundle(), dtn::UDPConvergenceLayer::send_bundle(), dtnsim::SimConvergenceLayer::send_bundle(), dtn::NullConvergenceLayer::send_bundle(), dtn::ConnectionConvergenceLayer::send_bundle(), dtn::BundleActions::send_bundle(), dtn::ProphetEncounter::send_bundle_offer(), dtn::TCPConvergenceLayer::Connection::send_data(), dtn::BluetoothConvergenceLayer::Connection::send_data(), dtn::StreamConvergenceLayer::Connection::send_data_todo(), dtn::ProphetEncounter::send_dictionary(), dtn::StreamConvergenceLayer::Connection::send_keepalive(), dtn::StreamConvergenceLayer::Connection::send_next_segment(), dtn::StreamConvergenceLayer::Connection::send_pending_acks(), dtn::StreamConvergenceLayer::Connection::send_pending_data(), dtn::ProphetEncounter::send_prophet_tlv(), dtn::APIClient::send_response(), oasys::RateLimitedSocket::sendto(), dtn::Link::serialize(), dtn::BlockInfo::serialize(), oasys::BluetoothSocket::set_channel(), dtn::Link::set_cl_info(), dtn::Interface::set_cl_info(), dtn::Contact::set_cl_info(), dtn::Link::set_contact(), dtn::BundlePayload::set_data(), dtn::BlockInfo::set_flag(), oasys::Thread::set_interruptable(), oasys::ExpandableBuffer::set_len(), oasys::StringBuffer::set_length(), dtn::BundlePayload::set_length(), oasys::BluetoothClient::set_nonblocking(), oasys::IOHandlerBase::set_notifier(), oasys::PointerCache< _Name, _PtrType >::set_ptr(), oasys::XMLDocument::set_root(), oasys::StreamBuffer::set_size(), dtn::ProphetEncounter::set_state(), dtn::TableBasedRouter::should_fwd(), dtn::ProphetDecider::should_fwd(), dtn::ProphetEncounter::should_fwd(), oasys::IPSocket::shutdown(), oasys::BluetoothSocket::shutdown(), oasys::OnOffNotifier::signal(), dtnsim::SimContact::SimContact(), oasys::FileSystemTable::size(), oasys::BerkeleyDBTable::size(), oasys::SMTP::SMTP(), oasys::BasicSMTPHandler::smtp_DATA_begin(), oasys::Log::sort_rules(), oasys::Thread::start(), oasys::ExpatXMLParser::start_element(), dtn::StreamConvergenceLayer::Connection::start_next_bundle(), oasys::IPSocket::statetoa(), oasys::BluetoothSocket::statetoa(), dtn::StreamConvergenceLayer::Connection::stream_lparams(), oasys::StreamBuffer::StreamBuffer(), oasys::StringBuffer::StringBuffer(), dtn::ProphetEncounter::switch_info_role(), oasys::ExpandableBuffer::tail_buf(), dtn::TCPConvergenceLayer::Connection::tcp_lparams(), oasys::TCPClient::TCPClient(), oasys::Thread::Thread(), oasys::FileSystemStore::tidy_database(), oasys::TCPServer::timeout_accept(), oasys::BluetoothServer::timeout_accept(), oasys::TCPClient::timeout_connect(), oasys::StringBuffer::trim(), dtn::BundlePayload::truncate(), oasys::SpinLock::try_lock(), oasys::TextMarshal::unindent(), oasys::SpinLock::unlock(), oasys::Mutex::unlock(), oasys::MmapFile::unmap(), oasys::OpenFdCache< _Key, _CloseFcn >::unpin(), oasys::Cache< _Key, _Val, _EvictFcn >::unpin(), dtn::ProphetTable::update(), dtn::GlobalStore::update(), dtn::ProphetNode::update_age(), dtn::ProphetNode::update_pvalue(), dtn::ProphetStats::update_stats(), dtn::ProphetNode::update_transitive(), oasys::StringBuffer::vappendf(), oasys::StringAppender::vappendf(), oasys::BufferedOutput::vformat_buf(), oasys::Log::vlogf(), dtn::APIClient::wait_for_bundle(), dtn::BundlePayload::write_data(), dtn::RIBDTLV::write_ras_entry(), dtn::Bundle::~Bundle(), dtn::Contact::~Contact(), dtn::Link::~Link(), oasys::Lock::~Lock(), and dtn::ProphetEncounter::~ProphetEncounter().

#define delete_z ( _obj   )     do { delete _obj; _obj = 0; } while (0)

Make sure to null out after deleting an object. USE THIS.

Definition at line 125 of file DebugUtils.h.

Referenced by dtn::DTNServer::close_datastore(), oasys::BerkeleyDBStore::get_table_names(), dtn::APIClient::~APIClient(), oasys::IOHandlerBase::~IOHandlerBase(), and oasys::StringBuffer::~StringBuffer().

#define NO_ASSIGN ( _Classname   )     private: _Classname& operator=(const _Classname& other)

Macros to define but not declare copy and assignment operator to avoid accidently usage of such constructs. Put this at the top of the class declaration.

Definition at line 136 of file DebugUtils.h.

#define NO_ASSIGN_COPY ( _Classname   ) 

Value:

NO_COPY(_Classname);                         \
   NO_ASSIGN(_Classname)
Macros to define but not declare copy and assignment operator to avoid accidently usage of such constructs. Put this at the top of the class declaration.

Definition at line 139 of file DebugUtils.h.

#define NO_COPY ( _Classname   )     private: _Classname(const _Classname& other)

Macros to define but not declare copy and assignment operator to avoid accidently usage of such constructs. Put this at the top of the class declaration.

Definition at line 133 of file DebugUtils.h.

#define NOTIMPLEMENTED

Value:

do {                                                                \
        fprintf(stderr, "%s NOT IMPLEMENTED at %s:%d\n",                \
                __FUNCTION__, __FILE__, __LINE__);                      \
        ::oasys::Breaker::break_here();                                 \
        ::oasys::FatalSignals::die();                                   \
    } while(0);

Definition at line 84 of file DebugUtils.h.

Referenced by dtn::ScheduledLink::convert_fc(), oasys::BerkeleyDBStore::get_table_names(), dtn::BundleDaemon::handle_link_create(), dtn::BundleList::insert_sorted(), dtn::FileConvergenceLayer::interface_up(), oasys::Thread::interrupt(), oasys::Thread::kill(), oasys::TextUnmarshal::process(), oasys::SQLExtract::process(), oasys::SQLTableFormat::process(), oasys::SQLUpdate::process(), oasys::SQLInsert::process(), dtnsim::Simulator::process(), dtn::FileConvergenceLayer::Scanner::run(), dtn::FileConvergenceLayer::send_bundle(), dtn::LinkCreateRequest::serialize(), and oasys::Thread::set_interruptable().

#define NOTREACHED

Value:

do {                                                                \
        fprintf(stderr, "NOTREACHED REACHED at %s:%d\n",                \
                __FILE__, __LINE__);                                    \
        ::oasys::Breaker::break_here();                                 \
        ::oasys::FatalSignals::die();                                   \
    } while(0);

Definition at line 76 of file DebugUtils.h.

Referenced by dtn::ForwardingInfo::action_to_str(), SparseArray< _Type >::allocate(), dtn::StreamConvergenceLayer::Connection::break_contact(), dtn::FragmentManager::check_completed(), dtn::TestCommand::exec(), dtn::BundleProtocol::get_admin_type(), dtn::BundleDaemon::handle_bundle_received(), oasys::IO::ioerr2str(), oasys::Mutex::Mutex(), oasys::IO::poll_with_notifier(), dtn::ContactEvent::reason_to_str(), oasys::TimerThread::run(), oasys::InitConfigStep::run_component(), oasys::IO::rwdata(), dtn::Link::set_state(), dtn::StreamConvergenceLayer::shutdown_reason_to_str(), dtnsim::sim_ev2str(), dtn::Link::state_to_str(), dtn::ForwardingInfo::state_to_str(), dtn::IPDiscovery::str_to_type(), oasys::Thread::thread_run(), dtn::IPDiscovery::type_to_str(), and dtn::InterfaceTable::~InterfaceTable().

#define STATIC_ASSERT ( _x,
_what   ) 

Value:

typedef static_assert_test                     \
    <                                              \
        sizeof(STATIC_ASSERTION_FAILURE<(bool)(_x)>) \
    > static_assert_typedef_ ## _what;

Definition at line 104 of file DebugUtils.h.


Function Documentation

void oasys_break (  ) 

This is outside because it's annoying to type such a long name in gdb.

Definition at line 26 of file DebugUtils.cc.

Referenced by oasys::Breaker::break_here().


Generated on Thu Jun 7 16:56:53 2007 for DTN Reference Implementation by  doxygen 1.5.1