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 >
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::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(), 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::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::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::StreamConvergenceLayer::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.


Generated on Sat Sep 8 08:36:19 2007 for DTN Reference Implementation by  doxygen 1.5.3