Functions to help clean up when a fatal error is encountered. More...
Macros | |
#define | NS_ABORT_IF(cond) |
Abnormal program termination if cond is true. More... | |
#define | NS_ABORT_MSG(msg) |
Abnormal program termination. More... | |
#define | NS_ABORT_MSG_IF(cond, msg) |
Abnormal program termination if cond is true. More... | |
#define | NS_ABORT_MSG_UNLESS(cond, msg) NS_ABORT_MSG_IF (!(cond),msg) |
Abnormal program termination if cond is false. More... | |
#define | NS_ABORT_UNLESS(cond) NS_ABORT_IF (!(cond)) |
Abnormal program termination if cond is false. More... | |
#define | NS_FATAL_ERROR(msg) |
fatal error handling More... | |
#define | NS_FATAL_ERROR_NO_MSG() |
fatal error handling More... | |
Functions | |
void | ns3::FatalImpl::FlushStreams (void) |
Flush all currently registered streams. More... | |
void | ns3::FatalImpl::RegisterStream (std::ostream *stream) |
Register a stream to be flushed on abnormal exit. More... | |
void | ns3::FatalImpl::UnregisterStream (std::ostream *stream) |
Unregister a stream for flushing on abnormal exit. More... | |
Functions to help clean up when a fatal error is encountered.
The functions in this group are used to perform limited clean up, like flushing active streams, when fatal errors are encountered (through assertion fail, calls to NS_ABORT_* or calls to NS_FATAL_ERROR).
Currently, other than flushing active ostreams, these functions does not interfere with outside memory. There is still a residual risk that invalid ostream pointers may be present, and may corrupt the memory on the attempt to execute the flush() function.
#define NS_ABORT_IF | ( | cond | ) |
Abnormal program termination if cond is true.
cond | condition to be evaluated. |
This is similar to NS_ASSERT(!(cond)), except this check is enabled in all builds. If cond is evaluated to true, the espression evaluating to true is printed to stderr, followed by a call to the NS_FATAL_ERROR_NO_MSG() macro which prints the details of filename and line number to stderr. The program will be halted by calling std::terminate(), triggering any clean up code registered by std::set_terminate (NS3 default is a stream-flushing code, but may be overridden).
This macro is enable unconditionally in all builds, including debug and optimized builds.
Definition at line 71 of file abort.h.
Referenced by ns3::EpcTft::Add(), ns3::EmuEpcHelper::AddEnb(), ns3::EpcSgwPgwApplication::DoCreateSessionRequest(), LteEpcE2eDataTestCase::DoRun(), ns3::LrWpanPhy::EndSetTRXState(), ns3::LrWpanPhy::EndTx(), ns3::UeManager::GetDataRadioBearerInfo(), ns3::LrWpanPhy::PlmeSetTRXStateRequest(), ns3::PyViz::TraceNetDevPromiscRxCsma(), ns3::PyViz::TraceNetDevRxCsma(), ns3::PyViz::TraceNetDevRxWifi(), ns3::PyViz::TraceNetDevTxCsma(), and ns3::PyViz::TraceNetDevTxWifi().
#define NS_ABORT_MSG | ( | msg | ) |
Abnormal program termination.
msg | message to output when this macro is hit. |
This macro is essentially equivalent to NS_FATAL_ERROR, excepts it prepends the error message with the string "aborted. ". When this macro is hit a runtime, the program will be halted using std::terminate, which triggers clean up code regestered by std::set_terminate.
This macro is enable unconditionally in all builds, including debug and optimized builds.
Definition at line 44 of file abort.h.
Referenced by ns3::GnuplotAggregator::Add2dDataset(), ns3::FileHelper::AddAggregator(), ns3::FileHelper::AddProbe(), ns3::GnuplotHelper::AddProbe(), ns3::FileHelper::AddTimeSeriesAdaptor(), ns3::GnuplotHelper::AddTimeSeriesAdaptor(), ns3::SixLowPanNetDevice::CompressLowPanNhc(), ns3::ConfigStore::ConfigStore(), ns3::SixLowPanNetDevice::DecompressLowPanIphc(), ns3::SixLowPanNetDevice::DecompressLowPanNhc(), ns3::RipNg::DeleteRoute(), ns3::LrWpanNetDevice::GetMulticast(), ns3::SixLowPanNetDevice::Fragments::GetPacket(), ns3::FileHelper::GetProbe(), ns3::GnuplotHelper::GetProbe(), ns3::CoDelQueue::GetQueueSize(), ns3::RedQueue::GetQueueSize(), ns3::RipNg::InvalidateRoute(), main(), ns3::SixLowPanNetDevice::MakeGlobalAddressFromMac(), ns3::SixLowPanNetDevice::MakeLinkLocalAddressFromMac(), ns3::operator<<(), ns3::PcapSniffRxEvent(), ns3::PcapSniffTxEvent(), PerfFile(), ns3::SixLowPanIphc::PostProcessDac(), ns3::SixLowPanIphc::PostProcessSac(), ns3::RipNg::Receive(), ns3::LrWpanNetDevice::SendFrom(), ns3::GnuplotAggregator::Set2dDatasetErrorBars(), ns3::GnuplotAggregator::Set2dDatasetExtra(), ns3::GnuplotAggregator::Set2dDatasetStyle(), ns3::LrWpanNetDevice::SetMtu(), ns3::YansWifiPhyHelper::SetPcapDataLinkType(), ns3::Time::Time(), ns3::GnuplotAggregator::Write2d(), ns3::GnuplotAggregator::Write2dDatasetEmptyLine(), ns3::GnuplotAggregator::Write2dWithXErrorDelta(), ns3::GnuplotAggregator::Write2dWithXYErrorDelta(), and ns3::GnuplotAggregator::Write2dWithYErrorDelta().
#define NS_ABORT_MSG_IF | ( | cond, | |
msg | |||
) |
Abnormal program termination if cond is true.
cond | condition to be evaluated. |
msg | message to output when cond is true. |
This is similar to NS_ASSERT_MSG(!(cond)), except this check is enabled in all builds. If cond is evaluated to true, the espression evaluating to true is printed to stderr, followed by a call to the NS_FATAL_ERROR() macro which prints the user-specified error message, and details of filename and line number to stderr. The program will be halted by calling std::terminate(), triggering any clean up code registered by std::set_terminate (NS3 default is a stream-flushing code, but may be overridden).
This macro is enable unconditionally in all builds, including debug and optimized builds.
Definition at line 101 of file abort.h.
Referenced by ns3::WaypointMobilityModel::AddWaypoint(), ns3::GlobalRouter::BuildNetworkLSAs(), ns3::PcapHelper::CreateFile(), ns3::PlanetLabFdNetDeviceHelper::CreateFileDescriptor(), ns3::TapFdNetDeviceHelper::CreateFileDescriptor(), ns3::TapBridge::CreateTap(), ns3::GlobalRouter::DiscoverLSAs(), ns3::TapBridgeFdReader::DoRead(), ns3::FdNetDeviceFdReader::DoRead(), ns3::AsciiTraceHelperForDevice::EnableAsciiImpl(), ns3::PcapHelperForDevice::EnablePcap(), ns3::YansWifiPhyHelper::EnablePcapInternal(), ns3::SystemWallClockMsPrivate::End(), ns3::RadioEnvironmentMapHelper::Install(), ns3::LteHelper::InstallSingleEnbDevice(), ns3::LteHelper::InstallSingleUeDevice(), main(), ns3::AthstatsWifiTraceSink::Open(), ns3::GlobalRouter::ProcessBridgedBroadcastLink(), ns3::GlobalRouter::ProcessPointToPointLink(), ns3::GlobalRouter::ProcessSingleBroadcastLink(), ns3::TapBridge::ReceiveFromBridgedDevice(), ns3::TcpSocketBase::Recv(), ns3::TcpSocketBase::Send(), ns3::Ipv4Header::SetFragmentOffset(), ns3::TapBridge::StartTapDevice(), and ns3::int64x64_t::Umul().
#define NS_ABORT_MSG_UNLESS | ( | cond, | |
msg | |||
) | NS_ABORT_MSG_IF (!(cond),msg) |
Abnormal program termination if cond is false.
cond | condition to be evaluated. |
msg | message to output if cond is false. |
This is an alias for NS_ABORT_MSG_IF(!(cond))
Definition at line 136 of file abort.h.
Referenced by ns3::Names::Add(), ns3::Ipv4AddressGeneratorImpl::AddAllocated(), ns3::BufferSizeLevelBsr::BsrId2BufferSize(), ns3::GlobalRouter::BuildNetworkLSAs(), ns3::GlobalRouter::DiscoverLSAs(), Ns3TcpLossTestCase::DoSetup(), Ns3TcpStateTestCase::DoSetup(), Ns3TcpInteroperabilityTestCase::DoSetup(), ns3::TestVectors< T >::Get(), ns3::PcapHelper::GetFilenameFromDevice(), ns3::AsciiTraceHelper::GetFilenameFromDevice(), ns3::PcapHelper::GetFilenameFromInterfacePair(), ns3::AsciiTraceHelper::GetFilenameFromInterfacePair(), ns3::Ipv4AddressGeneratorImpl::Init(), ns3::Ipv4AddressGeneratorImpl::InitAddress(), ns3::BuildingsHelper::Install(), main(), ns3::BuildingsHelper::MakeConsistent(), ns3::BuildingsHelper::MakeMobilityModelConsistent(), ns3::Ipv4AddressGeneratorImpl::MaskToIndex(), ns3::Ipv4NixVectorRouting::NetDeviceIsBridged(), ns3::GlobalRouter::NetDeviceIsBridged(), ns3::Ipv4AddressGeneratorImpl::NextAddress(), ns3::AthstatsWifiTraceSink::Open(), ns3::OutputStreamWrapper::OutputStreamWrapper(), ns3::Ipv6AddressGeneratorImpl::PrefixToIndex(), ns3::GlobalRouter::ProcessBridgedBroadcastLink(), ns3::GlobalRouter::ProcessPointToPointLink(), ns3::GlobalRouter::ProcessSingleBroadcastLink(), ns3::Names::Rename(), ns3::TcpNewReno::SetInitialCwnd(), ns3::TcpReno::SetInitialCwnd(), ns3::TcpTahoe::SetInitialCwnd(), ns3::TcpWestwood::SetInitialCwnd(), ns3::TcpNewReno::SetInitialSSThresh(), ns3::TcpReno::SetInitialSSThresh(), ns3::TcpTahoe::SetInitialSSThresh(), ns3::TcpWestwood::SetInitialSSThresh(), ns3::TcpNewReno::SetSegSize(), ns3::TcpReno::SetSegSize(), ns3::TcpTahoe::SetSegSize(), ns3::TcpWestwood::SetSegSize(), ns3::TcpSocketBase::SetSegSize(), and ns3::AthstatsWifiTraceSink::WriteStats().
#define NS_ABORT_UNLESS | ( | cond | ) | NS_ABORT_IF (!(cond)) |
Abnormal program termination if cond is false.
cond | condition to be evaluated. |
This is an alias for NS_ABORT_IF(!(cond))
#define NS_FATAL_ERROR | ( | msg | ) |
fatal error handling
msg | message to output when this macro is hit. |
When this macro is hit at runtime, the user-specified error message is printed to stderr, followed by a call to the NS_FATAL_ERROR_NO_MSG() macro which prints the details of filename and line number to stderr. The program will be halted by calling std::terminate(), triggering any clean up code registered by std::set_terminate (NS3 default is a stream-flushing code, but may be overridden).
This macro is enabled unconditionally in all builds, including debug and optimized builds.
Definition at line 95 of file fatal-error.h.
Referenced by ns3::EpcUeNas::ActivateEpsBearer(), ns3::EutranMeasurementMapping::ActualA3Offset2IeValue(), ns3::EutranMeasurementMapping::ActualHysteresis2IeValue(), ns3::Ipv4AddressGeneratorImpl::AddAllocated(), ns3::Ipv6AddressGeneratorImpl::AddAllocated(), ns3::IidManager::AddAttribute(), ns3::Ipv6L3Protocol::AddAutoconfiguredAddress(), ns3::BridgeNetDevice::AddBridgePort(), ns3::ConnectionManager::AddConnection(), ns3::IidManager::AddConstructor(), ns3::UeManager::AddDataRadioBearerInfo(), ns3::CsmaNetDevice::AddHeader(), ns3::MeshPointDevice::AddInterface(), ns3::WimaxNetDevice::AddLinkChangeCallback(), ns3::NixVector::AddNeighborIndex(), ns3::LteAnr::AddNeighbourRelation(), ns3::TestCase::AddTestCase(), ns3::IidManager::AddTraceSource(), ns3::LteEnbRrc::AddUeMeasReportConfig(), ns3::CommandLine::AddValue(), ns3::Object::AggregateObject(), ns3::CidFactory::Allocate(), ns3::LteUeRrc::ApplyMeasConfig(), ns3::LteUeRrc::ApplyRadioResourceConfigDedicated(), ns3::LteHelper::Attach(), ns3::XmlConfigSave::Attributes(), ns3::XmlConfigLoad::Attributes(), ns3::GlobalValue::Bind(), ns3::BriteTopologyHelper::BuildBriteEdgeInfoList(), ns3::BriteTopologyHelper::BuildBriteNodeInfoList(), ns3::Building::Building(), ns3::BandwidthManager::CalculateAllocationSize(), ns3::DistributedSimulatorImpl::CalculateLookAhead(), ns3::AcousticModemEnergyModel::ChangeState(), ns3::WifiRadioEnergyModel::ChangeState(), ns3::CheckEnvironmentVariables(), ns3::WifiMac::ConfigureDcf(), ns3::OcbWifiMac::ConfigureEdca(), ns3::SocketWriter::Connect(), ns3::GnuplotHelper::ConnectProbeToAggregator(), ns3::FileHelper::ConnectProbeToAggregator(), ns3::ObjectBase::ConstructSelf(), ns3::WimaxHelper::CreateBSScheduler(), ns3::ConnectionManager::CreateConnection(), ns3::TestCase::CreateDataDirFilename(), ns3::EmuFdNetDeviceHelper::CreateFileDescriptor(), ns3::PlanetLabFdNetDeviceHelper::CreateFileDescriptor(), ns3::TapFdNetDeviceHelper::CreateFileDescriptor(), ns3::WimaxHelper::CreatePhy(), ns3::WimaxHelper::CreatePhyWithoutChannel(), ns3::EmuNetDevice::CreateSocket(), ns3::TapBridge::CreateTap(), ns3::WimaxHelper::CreateUplinkScheduler(), ns3::WifiModeFactory::CreateWifiMode(), ns3::AnimationInterface::CsmaPhyTxEndTrace(), ns3::DataRate::DataRate(), ns3::XmlConfigSave::Default(), ns3::XmlConfigLoad::Default(), ns3::CtrlBAckRequestHeader::Deserialize(), ns3::dot11s::PeerLinkFrameStart::Deserialize(), ns3::OrganizationIdentifier::Deserialize(), ns3::Tlv::Deserialize(), ns3::CtrlBAckResponseHeader::Deserialize(), ns3::SfVectorTlvValue::Deserialize(), ns3::CtrlBAckResponseHeader::DeserializeBitmap(), ns3::ObjectPtrContainerValue::DeserializeFromString(), ns3::dot11s::IeConfiguration::DeserializeInformationField(), ns3::MeshInformationElementVector::DeserializeSingleIe(), ns3::WifiInformationElementVector::DeserializeSingleIe(), ns3::NullMessageMpiInterface::Disable(), ns3::GrantedTimeWindowMpiInterface::Disable(), ns3::DistributedSimulatorImpl::DistributedSimulatorImpl(), ns3::Callback< void, ns3::Ptr< const ns3::Packet >, ns3::UanTxMode, T3, T4, T5, T6, T7, T8 >::DoAssign(), ns3::LteUeRrc::DoConnect(), ns3::CqaFfMacScheduler::DoCschedLcReleaseReq(), ns3::LteUeRrc::DoDisconnect(), ns3::LteEnbMac::DoDlInfoListElementHarqFeeback(), ns3::LteUeRrc::DoForceCampedOnEnb(), ns3::AcousticModemEnergyModel::DoGetCurrentA(), ns3::WifiRadioEnergyModel::DoGetCurrentA(), ns3::SimpleOfdmWimaxPhy::DoGetDataRate(), ns3::SimpleOfdmWimaxChannel::DoGetDevice(), ns3::SimpleOfdmWimaxPhy::DoGetFrameDuration(), ns3::SimpleOfdmWimaxPhy::DoGetFrameDurationCode(), ns3::SimpleOfdmWimaxPhy::DoGetSamplingFactor(), ns3::EpcMme::DoInitialContextSetupResponse(), ns3::UeManager::DoInitialize(), ns3::olsr::RoutingProtocol::DoInitialize(), ns3::AcousticModemEnergyModelHelper::DoInstall(), ns3::WifiRadioEnergyModelHelper::DoInstall(), ns3::LteEnbRrc::DoNotifyLcConfigResult(), ns3::LteUeRrc::DoNotifyRandomAccessFailed(), ns3::LteUeRrc::DoNotifyRandomAccessSuccessful(), ns3::BaseStationNetDevice::DoReceive(), ns3::SubscriberStationNetDevice::DoReceive(), ns3::LteUeMac::DoReceiveLteControlMessage(), ns3::LteEnbMac::DoReconfigureLc(), ns3::LteEnbRrc::DoRecvHandoverRequest(), ns3::LteUeRrc::DoRecvRrcConnectionReconfiguration(), ns3::LteUeRrc::DoRecvRrcConnectionReestablishment(), ns3::LteUeRrc::DoRecvRrcConnectionReestablishmentReject(), ns3::LteUeRrc::DoRecvRrcConnectionSetup(), ns3::LteEnbRrc::DoRecvUeData(), ns3::LteEnbMac::DoReleaseLc(), LenaMimoTestCase::DoRun(), Ns3TcpLossTestCase::DoRun(), Ns3TcpStateTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), LteCellSelectionTestCase::DoRun(), LteHandoverTargetTestCase::DoRun(), ns3::LteEnbMac::DoSchedDlConfigInd(), ns3::RrFfMacScheduler::DoSchedDlMacBufferReq(), ns3::TdMtFfMacScheduler::DoSchedDlMacBufferReq(), ns3::TtaFfMacScheduler::DoSchedDlMacBufferReq(), ns3::FdMtFfMacScheduler::DoSchedDlMacBufferReq(), ns3::PfFfMacScheduler::DoSchedDlMacBufferReq(), ns3::TdBetFfMacScheduler::DoSchedDlMacBufferReq(), ns3::FdBetFfMacScheduler::DoSchedDlMacBufferReq(), ns3::CqaFfMacScheduler::DoSchedDlMacBufferReq(), ns3::TdTbfqFfMacScheduler::DoSchedDlMacBufferReq(), ns3::FdTbfqFfMacScheduler::DoSchedDlMacBufferReq(), ns3::PssFfMacScheduler::DoSchedDlMacBufferReq(), ns3::RrFfMacScheduler::DoSchedDlPagingBufferReq(), ns3::TdMtFfMacScheduler::DoSchedDlPagingBufferReq(), ns3::TtaFfMacScheduler::DoSchedDlPagingBufferReq(), ns3::FdMtFfMacScheduler::DoSchedDlPagingBufferReq(), ns3::PfFfMacScheduler::DoSchedDlPagingBufferReq(), ns3::TdBetFfMacScheduler::DoSchedDlPagingBufferReq(), ns3::FdBetFfMacScheduler::DoSchedDlPagingBufferReq(), ns3::CqaFfMacScheduler::DoSchedDlPagingBufferReq(), ns3::TdTbfqFfMacScheduler::DoSchedDlPagingBufferReq(), ns3::FdTbfqFfMacScheduler::DoSchedDlPagingBufferReq(), ns3::PssFfMacScheduler::DoSchedDlPagingBufferReq(), ns3::RrFfMacScheduler::DoSchedDlTriggerReq(), ns3::TdMtFfMacScheduler::DoSchedDlTriggerReq(), ns3::TtaFfMacScheduler::DoSchedDlTriggerReq(), ns3::FdMtFfMacScheduler::DoSchedDlTriggerReq(), ns3::PfFfMacScheduler::DoSchedDlTriggerReq(), ns3::TdBetFfMacScheduler::DoSchedDlTriggerReq(), ns3::FdBetFfMacScheduler::DoSchedDlTriggerReq(), ns3::CqaFfMacScheduler::DoSchedDlTriggerReq(), ns3::TdTbfqFfMacScheduler::DoSchedDlTriggerReq(), ns3::FdTbfqFfMacScheduler::DoSchedDlTriggerReq(), ns3::PssFfMacScheduler::DoSchedDlTriggerReq(), ns3::RrFfMacScheduler::DoSchedUlCqiInfoReq(), ns3::TdMtFfMacScheduler::DoSchedUlCqiInfoReq(), ns3::TtaFfMacScheduler::DoSchedUlCqiInfoReq(), ns3::FdMtFfMacScheduler::DoSchedUlCqiInfoReq(), ns3::PfFfMacScheduler::DoSchedUlCqiInfoReq(), ns3::TdBetFfMacScheduler::DoSchedUlCqiInfoReq(), ns3::FdBetFfMacScheduler::DoSchedUlCqiInfoReq(), ns3::CqaFfMacScheduler::DoSchedUlCqiInfoReq(), ns3::TdTbfqFfMacScheduler::DoSchedUlCqiInfoReq(), ns3::FdTbfqFfMacScheduler::DoSchedUlCqiInfoReq(), ns3::PssFfMacScheduler::DoSchedUlCqiInfoReq(), ns3::RrFfMacScheduler::DoSchedUlTriggerReq(), ns3::TdMtFfMacScheduler::DoSchedUlTriggerReq(), ns3::TtaFfMacScheduler::DoSchedUlTriggerReq(), ns3::FdMtFfMacScheduler::DoSchedUlTriggerReq(), ns3::PfFfMacScheduler::DoSchedUlTriggerReq(), ns3::TdBetFfMacScheduler::DoSchedUlTriggerReq(), ns3::FdBetFfMacScheduler::DoSchedUlTriggerReq(), ns3::CqaFfMacScheduler::DoSchedUlTriggerReq(), ns3::TdTbfqFfMacScheduler::DoSchedUlTriggerReq(), ns3::FdTbfqFfMacScheduler::DoSchedUlTriggerReq(), ns3::PssFfMacScheduler::DoSchedUlTriggerReq(), ns3::LteUePhy::DoSynchronizeWithEnb(), ns3::Ipv4FlowProbe::DropLogger(), ns3::Ipv6FlowProbe::DropLogger(), ns3::GrantedTimeWindowMpiInterface::Enable(), ns3::UanMacCw::EndTx(), ns3::RegularWifiMac::Enqueue(), ns3::BlockAckManager::ExistsAgreementInState(), ns3::NixVector::ExtractNeighborIndex(), ns3::BlockAckCache::FillBlockAckBitmap(), ns3::PyViz::FilterPacket(), ns3::LteAnr::Find(), ns3::LteStatsCalculator::FindCellIdFromEnbRlcPath(), ns3::Ipv4FlowClassifier::FindFlow(), ns3::Ipv6FlowClassifier::FindFlow(), ns3::LteStatsCalculator::FindImsiFromEnbRlcPath(), ns3::LteStatsCalculator::FindImsiFromLteNetDevice(), ns3::LteStatsCalculator::FindImsiFromUePhy(), ns3::GlobalRouteManagerImpl::FindOutgoingInterfaceId(), ns3::SystemPath::FindSelfDirectory(), ns3::RegularWifiMac::FinishConfigureStandard(), ns3::EmuNetDevice::ForwardUp(), ns3::CidFactory::FreeCid(), ns3::WifiActionHeader::GetAction(), ns3::ObjectBase::GetAttribute(), ns3::BurstProfileManager::GetBurstProfile(), ns3::WifiActionHeader::GetCategory(), ns3::EmuNetDevice::GetChannel(), ns3::LteSpectrumValueHelper::GetChannelBandwidth(), ns3::SimpleOfdmWimaxPhy::GetCodedFecBlockSize(), ns3::ConnectionManager::GetConnections(), ns3::IidManager::GetConstructor(), ns3::WifiRemoteStationManager::GetControlAnswerMode(), ns3::WifiPhyStateHelper::GetDelayUntilIdle(), ns3::MultiModelSpectrumChannel::GetDevice(), ns3::dsr::DsrRouting::GetDownTarget6(), ns3::SimpleOfdmWimaxPhy::GetFecBlockSize(), ns3::MeshPointDevice::GetInterface(), ns3::PointToPointGridHelper::GetIpv4Address(), ns3::PointToPointGridHelper::GetIpv6Address(), ns3::UanTxModeFactory::GetModeItem(), ns3::BurstProfileManager::GetModulationType(), ns3::EmuNetDevice::GetMtu(), ns3::UanNetDevice::GetMulticast(), ns3::LteEnbRrc::GetNewSrsConfigurationIndex(), ns3::PointToPointGridHelper::GetNode(), ns3::ConnectionManager::GetNPackets(), ns3::EpsBearer::GetPacketDelayBudgetMs(), ns3::EpsBearer::GetPacketErrorLossRate(), ns3::UanPhyDual::GetPacketRx(), ns3::WifiPhy::GetPayloadDurationMicroSeconds(), ns3::WifiPhy::GetPlcpHeaderDurationMicroSeconds(), ns3::WifiPhy::GetPlcpHeaderMode(), ns3::WifiPhy::GetPlcpPreambleDurationMicroSeconds(), ns3::AnimationInterface::GetPosition(), ns3::EpsBearer::GetPriority(), ns3::Ipv4ListRouting::GetRoutingProtocol(), ns3::Ipv6ListRouting::GetRoutingProtocol(), ns3::ServiceFlow::GetSchedulingTypeStr(), ns3::CtrlBAckRequestHeader::GetSerializedSize(), ns3::CtrlBAckResponseHeader::GetSerializedSize(), ns3::ByteTagIterator::Item::GetTag(), ns3::TestRunnerImpl::GetTopLevelSourceDir(), ns3::WimaxConnection::GetTypeStr(), ns3::GlobalValue::GetValue(), ns3::GlobalValue::GetValueByName(), ns3::XmlConfigSave::Global(), ns3::XmlConfigLoad::Global(), ns3::GlobalValue::GlobalValue(), ns3::RrFfMacScheduler::HarqProcessAvailability(), ns3::TdMtFfMacScheduler::HarqProcessAvailability(), ns3::TtaFfMacScheduler::HarqProcessAvailability(), ns3::FdMtFfMacScheduler::HarqProcessAvailability(), ns3::PfFfMacScheduler::HarqProcessAvailability(), ns3::TdBetFfMacScheduler::HarqProcessAvailability(), ns3::FdBetFfMacScheduler::HarqProcessAvailability(), ns3::CqaFfMacScheduler::HarqProcessAvailability(), ns3::TdTbfqFfMacScheduler::HarqProcessAvailability(), ns3::FdTbfqFfMacScheduler::HarqProcessAvailability(), ns3::PssFfMacScheduler::HarqProcessAvailability(), ns3::EutranMeasurementMapping::IeValue2ActualA3Offset(), ns3::EutranMeasurementMapping::IeValue2ActualHysteresis(), ns3::EutranMeasurementMapping::IeValue2ActualQQualMin(), ns3::EutranMeasurementMapping::IeValue2ActualQRxLevMin(), ns3::dot11s::PeerManagementProtocol::InitiateLink(), ns3::RadioEnvironmentMapHelper::Install(), ns3::Wifi80211pHelper::Install(), ns3::InternetStackHelper::Install(), ns3::MeshHelper::Install(), ns3::MobilityHelper::Install(), ns3::IpcsClassifierRecord::IpcsClassifierRecord(), ns3::Ipv4FlowProbe::Ipv4FlowProbe(), ns3::Ipv6FlowProbe::Ipv6FlowProbe(), ns3::CtrlBAckResponseHeader::IsFragmentReceived(), ns3::EpsBearer::IsGbr(), ns3::CtrlBAckResponseHeader::IsPacketReceived(), ns3::SystemThread::Join(), ns3::olsr::RoutingProtocol::LinkSensing(), ns3::SystemMutexPrivate::Lock(), ns3::LogComponent::LogComponent(), ns3::LogComponentEnable(), ns3::ArpL3Protocol::Lookup(), ns3::LteEnbPhy::LteEnbPhy(), LteHandoverTargetTestCase::LteHandoverTargetTestCase(), ns3::LtePhy::LtePhy(), ns3::LteTestUePhy::LteTestUePhy(), LteUeMeasurementsHandoverTestCase::LteUeMeasurementsHandoverTestCase(), LteUeMeasurementsPiecewiseTestCase1::LteUeMeasurementsPiecewiseTestCase1(), LteUeMeasurementsPiecewiseTestCase2::LteUeMeasurementsPiecewiseTestCase2(), ns3::LteUePhy::LteUePhy(), main(), ns3::LteUeRrc::MeasurementReportTriggering(), ns3::Ipv6AddressHelper::NewAddress(), ns3::BlockAckManager::NotifyGotBlockAck(), ns3::WifiRadioEnergyModelPhyListener::NotifyMaybeCcaBusyStart(), ns3::WifiRadioEnergyModelPhyListener::NotifyRxEndError(), ns3::WifiRadioEnergyModelPhyListener::NotifyRxEndOk(), ns3::WifiRadioEnergyModelPhyListener::NotifyRxStart(), ns3::WifiRadioEnergyModelPhyListener::NotifySleep(), ns3::WifiRadioEnergyModelPhyListener::NotifySwitchingStart(), ns3::WifiRadioEnergyModelPhyListener::NotifyTxStart(), ns3::WifiRadioEnergyModelPhyListener::NotifyWakeup(), ns3::Ns2MobilityHelper::Ns2MobilityHelper(), ns3::NullMessageMpiInterface::NullMessageMpiInterface(), ns3::NullMessageSimulatorImpl::NullMessageSimulatorImpl(), ns3::operator<<(), ns3::operator>>(), ns3::OrganizationIdentifier::OrganizationIdentifier(), ns3::PcapSniffRxEvent(), ns3::PcapSniffTxEvent(), ns3::LrWpanMac::PdDataConfirm(), ns3::LrWpanPhy::PdDataRequest(), ns3::LrWpanMac::PlmeSetTRXStateConfirm(), ns3::LrWpanPhy::PlmeSetTRXStateRequest(), ns3::GnuplotHelper::PlotProbe(), ns3::PointToPointGridHelper::PointToPointGridHelper(), ns3::UeManager::PrepareHandover(), ns3::RrcAsn1Header::Print(), ns3::WifiMacHeader::Print(), ns3::CommandLine::PrintAttributes(), ns3::dot11s::HwmpProtocol::ProactivePathResolved(), ns3::SixLowPanNetDevice::ProcessFragment(), ns3::RealtimeSimulatorImpl::ProcessOneEvent(), readCordinatesFile(), ns3::SystemPath::ReadFiles(), readNxNMatrix(), ns3::EmuNetDevice::ReadThread(), ns3::flame::FlameProtocolMac::Receive(), ns3::RegularWifiMac::Receive(), ns3::dsr::DsrRouting::Receive(), ns3::dot11s::HwmpProtocolMac::ReceiveData(), ns3::LteEnbPhy::ReceiveLteControlMessage(), ns3::LteUePhy::ReceiveLteControlMessageList(), ns3::LteEnbPhy::ReceiveLteControlMessageList(), ns3::GrantedTimeWindowMpiInterface::ReceiveMessages(), ns3::MacLow::ReceiveOk(), ns3::UanMacRc::ReceiveOkFromPhy(), ns3::UanMacRcGw::ReceivePacket(), ns3::AnimationInterface::RecursiveIpv4RoutePathSearch(), ns3::UeManager::RecvHandoverPreparationFailure(), LteUeMeasurementsHandoverTestCase::RecvMeasurementReportCallback(), ns3::UeManager::RecvRrcConnectionReconfigurationCompleted(), ns3::UeManager::RecvRrcConnectionReestablishmentRequest(), ns3::UeManager::RecvRrcConnectionRequest(), ns3::UeManager::RecvRrcConnectionSetupCompleted(), ns3::RrFfMacScheduler::RefreshHarqProcesses(), ns3::TtaFfMacScheduler::RefreshHarqProcesses(), ns3::TdMtFfMacScheduler::RefreshHarqProcesses(), ns3::FdMtFfMacScheduler::RefreshHarqProcesses(), ns3::PfFfMacScheduler::RefreshHarqProcesses(), ns3::TdBetFfMacScheduler::RefreshHarqProcesses(), ns3::FdBetFfMacScheduler::RefreshHarqProcesses(), ns3::CqaFfMacScheduler::RefreshHarqProcesses(), ns3::TdTbfqFfMacScheduler::RefreshHarqProcesses(), ns3::FdTbfqFfMacScheduler::RefreshHarqProcesses(), ns3::PssFfMacScheduler::RefreshHarqProcesses(), ns3::Ipv6L3Protocol::RemoveAutoconfiguredAddress(), ns3::PacketMetadata::RemoveHeader(), ns3::LteAnr::RemoveNeighbourRelation(), ns3::dot11s::HwmpProtocol::RemoveRoutingStuff(), ns3::flame::FlameProtocol::RemoveRoutingStuff(), ns3::PacketMetadata::RemoveTrailer(), ns3::LteUePowerControl::ReportTpc(), ns3::dot11s::HwmpProtocol::RequestRoute(), ns3::flame::FlameProtocol::RequestRoute(), ns3::dsr::DsrOptions::ReverseSearchNextTwoHop(), ns3::RngStream::RngStream(), ns3::olsr::RoutingProtocol::RouteInput(), ns3::olsr::RoutingProtocol::RouteOutput(), ns3::UanMacRc::RtsTimeout(), Experiment::Run(), RoutingExperiment::Run(), ns3::FdReader::Run(), ns3::DistributedSimulatorImpl::Run(), ns3::SameRoomPositionAllocator::SameRoomPositionAllocator(), ns3::UplinkSchedulerMBQoS::Schedule(), ns3::Timer::Schedule(), ns3::BlockAckManager::ScheduleBlockAckReqIfNeeded(), ns3::UanMacRc::ScheduleData(), ns3::UeManager::ScheduleRrcConnectionReconfiguration(), ns3::WifiModeFactory::Search(), ns3::Ipv4L3Protocol::Send(), ns3::TapBridge::Send(), ns3::MacLow::SendBlockAckAfterBlockAckRequest(), ns3::EdcaTxopN::SendBlockAckRequest(), ns3::MacLow::SendBlockAckResponse(), ns3::UeManager::SendData(), ns3::LteNetDevice::SendFrom(), ns3::EmuNetDevice::SendFrom(), ns3::TapBridge::SendFrom(), ns3::olsr::RoutingProtocol::SendHello(), ns3::MeshWifiInterfaceMac::SendManagementFrame(), ns3::LteUeRrc::SendMeasurementReport(), ns3::GrantedTimeWindowMpiInterface::SendPacket(), ns3::TcpL4Protocol::SendPacket(), ns3::UeManager::SendUeContextRelease(), ns3::CtrlBAckRequestHeader::Serialize(), ns3::CtrlBAckResponseHeader::Serialize(), ns3::CtrlBAckResponseHeader::SerializeBitmap(), ns3::EnumValue::SerializeToString(), TcpTestCase::ServerHandleRecv(), ns3::TimestampTestCase::ServerHandleRecv(), ns3::WScalingTestCase::ServerHandleRecv(), ns3::Ns3NscStack::Set(), ns3::ObjectFactory::Set(), ns3::LteUePowerControl::SetAlpha(), ns3::TimerImpl::SetArgs(), ns3::Watchdog::SetArguments(), ns3::Timer::SetArguments(), ns3::ObjectBase::SetAttribute(), ns3::AnimationInterface::SetBackgroundImage(), ns3::RadioEnvironmentMapHelper::SetBandwidth(), ns3::TapBridge::SetBridgedNetDevice(), ns3::EmuNetDevice::SetDataRate(), ns3::Config::SetDefault(), ns3::LteEnbNetDevice::SetDlBandwidth(), ns3::LteFfrAlgorithm::SetDlBandwidth(), ns3::dsr::DsrRouting::SetDownTarget6(), ns3::EmuFdNetDeviceHelper::SetFileDescriptor(), ns3::XmlConfigSave::SetFilename(), ns3::Simulator::SetImplementation(), ns3::AcousticModemEnergyModel::SetMicroModemState(), ns3::EmuNetDevice::SetMtu(), ns3::NscTcpL4Protocol::SetNscLibrary(), ns3::AnimationInterface::SetOutputFile(), ns3::CtrlBAckResponseHeader::SetReceivedFragment(), ns3::CtrlBAckResponseHeader::SetReceivedPacket(), ns3::LteEnbRrc::SetSrsPeriodicity(), ns3::MeshHelper::SetStackInstaller(), ns3::Wifi80211pHelper::SetStandard(), ns3::CtrlBAckRequestHeader::SetType(), ns3::NqosWaveMacHelper::SetType(), ns3::QosWaveMacHelper::SetType(), ns3::CtrlBAckResponseHeader::SetType(), ns3::LteEnbNetDevice::SetUlBandwidth(), ns3::LteFfrAlgorithm::SetUlBandwidth(), ns3::TcpSocketBase::SetupEndpoint(), ns3::TcpSocketBase::SetupEndpoint6(), ns3::UplinkSchedulerSimple::SetupServiceFlow(), ns3::UplinkSchedulerMBQoS::SetupServiceFlow(), ns3::UplinkSchedulerRtps::SetupServiceFlow(), TcpTestCase::SourceHandleRecv(), ns3::TimestampTestCase::SourceHandleRecv(), ns3::WScalingTestCase::SourceHandleRecv(), ns3::FdReader::Start(), ns3::SystemThread::Start(), ns3::UdpEchoServer::StartApplication(), ns3::PacketSink::StartApplication(), ns3::BulkSendApplication::StartApplication(), ns3::EmuNetDevice::StartDevice(), ns3::LteSpectrumPhy::StartRxCtrl(), ns3::LteSpectrumPhy::StartRxData(), ns3::LteEnbPhy::StartSubFrame(), ns3::LteSpectrumPhy::StartTxDataFrame(), ns3::LteSpectrumPhy::StartTxDlCtrlFrame(), ns3::LteSpectrumPhy::StartTxUlSrsFrame(), BasicEnergyUpdateTest::StateSwitchTest(), ns3::WifiPhyStateHelper::SwitchToChannelSwitching(), ns3::WifiRadioEnergyModelPhyListener::SwitchToIdle(), ns3::WifiPhyStateHelper::SwitchToRx(), ns3::WifiPhyStateHelper::SwitchToSleep(), ns3::UeManager::SwitchToState(), ns3::LteUeRrc::SwitchToState(), ns3::WifiPhyStateHelper::SwitchToTx(), ns3::GrantedTimeWindowMpiInterface::TestSendComplete(), ns3::AnimationInterface::TrackIpv4RoutePaths(), ns3::PointToPointRemoteChannel::TransmitStart(), ns3::UeManager::UeManager(), ns3::SystemMutexPrivate::Unlock(), ns3::RrFfMacScheduler::UpdateHarqProcessId(), ns3::FdMtFfMacScheduler::UpdateHarqProcessId(), ns3::TdMtFfMacScheduler::UpdateHarqProcessId(), ns3::TtaFfMacScheduler::UpdateHarqProcessId(), ns3::PfFfMacScheduler::UpdateHarqProcessId(), ns3::TdBetFfMacScheduler::UpdateHarqProcessId(), ns3::FdBetFfMacScheduler::UpdateHarqProcessId(), ns3::CqaFfMacScheduler::UpdateHarqProcessId(), ns3::FdTbfqFfMacScheduler::UpdateHarqProcessId(), ns3::TdTbfqFfMacScheduler::UpdateHarqProcessId(), ns3::PssFfMacScheduler::UpdateHarqProcessId(), ns3::AnimationInterface::UpdateNodeCounter(), ns3::AnimationInterface::UpdateNodeImage(), ns3::flame::FlameProtocolMac::UpdateOutcomingFrame(), ns3::dot11s::HwmpProtocolMac::UpdateOutcomingFrame(), ns3::EmpiricalVariableImpl::Validate(), ns3::EmpiricalRandomVariable::Validate(), ns3::FileHelper::WriteProbe(), ns3::Timer::~Timer(), and ns3::XmlConfigSave::~XmlConfigSave().
#define NS_FATAL_ERROR_NO_MSG | ( | ) |
fatal error handling
When this macro is hit at runtime, details of filename and line number is printed to stderr, and the program is halted by calling std::terminate(). This will trigger any clean up code registered by std::set_terminate (NS3 default is a stream-flushing code), but may be overridden.
This macro is enabled unconditionally in all builds, including debug and optimized builds.
Definition at line 66 of file fatal-error.h.
Referenced by ns3::OrganizationIdentifier::GetSerializedSize().
void ns3::FatalImpl::FlushStreams | ( | void | ) |
Flush all currently registered streams.
This function iterates through each registered stream and unregister them. The default SIGSEGV handler is overridden when this function is being executed, and will be restored when this function returns.
If a SIGSEGV is encountered (most likely due to bad ostream* being registered, or a registered osteam* pointing to an ostream that had already been destroyed), this function will skip the bad ostream* and continue to flush the next stram. The function will then terminate raising SIGIOT (aka SIGABRT)
DO NOT call this function until the program is ready to crash.
Definition at line 116 of file fatal-impl.cc.
References NS_LOG_FUNCTION_NOARGS, ns3::FatalImpl::anonymous_namespace{fatal-impl.cc}::PeekStreamList(), s, and ns3::FatalImpl::anonymous_namespace{fatal-impl.cc}::sigHandler().
Referenced by ns3::FatalImpl::anonymous_namespace{fatal-impl.cc}::sigHandler().
void ns3::FatalImpl::RegisterStream | ( | std::ostream * | stream | ) |
Register a stream to be flushed on abnormal exit.
stream | The stream to be flushed on abnormal exit. |
If a std::terminate() call is encountered after the stream had been registered and before it had been unregistered, stream->flush() will be called. Users of this function is to ensure stream remains valid until it had been unregistered.
Definition at line 80 of file fatal-impl.cc.
References ns3::FatalImpl::anonymous_namespace{fatal-impl.cc}::GetStreamList(), and NS_LOG_FUNCTION.
Referenced by ns3::AsciiFile::AsciiFile(), ns3::OutputStreamWrapper::OutputStreamWrapper(), and ns3::PcapFile::PcapFile().
void ns3::FatalImpl::UnregisterStream | ( | std::ostream * | stream | ) |
Unregister a stream for flushing on abnormal exit.
stream | The stream to be unregistered. |
After a stream had been unregistered, stream->flush() will no longer be called should abnormal termination is encountered.
If stream is not registered, nothing will happen.
Definition at line 87 of file fatal-impl.cc.
References NS_LOG_FUNCTION, and ns3::FatalImpl::anonymous_namespace{fatal-impl.cc}::PeekStreamList().
Referenced by ns3::AsciiFile::~AsciiFile(), ns3::OutputStreamWrapper::~OutputStreamWrapper(), and ns3::PcapFile::~PcapFile().