gem5 v24.1.0.1
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Namespaces | Functions
trace.hh File Reference
#include <ostream>
#include <string>
#include <sstream>
#include "base/compiler.hh"
#include "base/cprintf.hh"
#include "base/debug.hh"
#include "base/logging.hh"
#include "base/match.hh"
#include "base/types.hh"
#include "sim/cur_tick.hh"

Go to the source code of this file.

Classes

class  gem5::trace::Logger
 Debug logging base class. More...
 
class  gem5::trace::OstreamLogger
 Logging wrapper for ostreams with the format: <when>: <name>: <message-body> More...
 
struct  gem5::StringWrap
 

Namespaces

namespace  gem5
 Copyright (c) 2024 Arm Limited All rights reserved.
 
namespace  gem5::trace
 

Macros

#define DDUMP(x, data, count)
 DPRINTF is a debugging trace facility that allows one to selectively enable tracing statements.
 
#define DPRINTF(x, ...)
 
#define DPRINTFS(x, s, ...)
 
#define DPRINTFR(x, ...)
 
#define DPRINTFV(x, ...)
 
#define DPRINTFN(...)
 
#define DPRINTFNR(...)
 

Functions

const std::string & name ()
 
Loggergem5::trace::getDebugLogger ()
 Get the current global debug logger.
 
std::ostream & gem5::trace::output ()
 Get the ostream from the current global logger.
 
void gem5::trace::setDebugLogger (Logger *logger)
 Delete the current global logger and assign a new one.
 
void gem5::trace::enable ()
 Enable/disable debug logging.
 
void gem5::trace::disable ()
 

Macro Definition Documentation

◆ DDUMP

#define DDUMP (   x,
  data,
  count 
)
Value:
do { \
if (GEM5_UNLIKELY(TRACING_ON && ::gem5::debug::x)) \
::gem5::trace::getDebugLogger()->dump( \
::gem5::curTick(), name(), data, count, #x); \
} while (0)
const std::string & name()
Definition trace.cc:48
const char data[]
Tick curTick()
The universal simulation clock.
Definition cur_tick.hh:46

DPRINTF is a debugging trace facility that allows one to selectively enable tracing statements.

To use DPRINTF, there must be a function or functor called name() that returns a const std::string & in the current scope.

If you desire that the automatic printing not occur, use DPRINTFR (R for raw)

With DPRINTFV it is possible to pass a debug::SimpleFlag variable as first argument. Example:

debug::Flag some_flag = debug::DMA; DPRINTFV(some_flag, ...);

Definition at line 203 of file trace.hh.

◆ DPRINTF

#define DPRINTF (   x,
  ... 
)
Value:
do { \
if (GEM5_UNLIKELY(TRACING_ON && ::gem5::debug::x)) { \
::gem5::trace::getDebugLogger()->dprintf_flag( \
::gem5::curTick(), name(), #x, __VA_ARGS__); \
} \
} while (0)

Definition at line 209 of file trace.hh.

◆ DPRINTFN

#define DPRINTFN (   ...)
Value:
do { \
if (TRACING_ON) { \
::gem5::trace::getDebugLogger()->dprintf( \
::gem5::curTick(), name(), __VA_ARGS__); \
} \
} while (0)

Definition at line 237 of file trace.hh.

◆ DPRINTFR

#define DPRINTFR (   x,
  ... 
)
Value:
do { \
if (GEM5_UNLIKELY(TRACING_ON && ::gem5::debug::x)) { \
::gem5::trace::getDebugLogger()->dprintf_flag( \
(::gem5::Tick)-1, std::string(), #x, __VA_ARGS__); \
} \
} while (0)
uint64_t Tick
Tick count type.
Definition types.hh:58

Definition at line 223 of file trace.hh.

◆ DPRINTFS

#define DPRINTFS (   x,
  s,
  ... 
)
Value:
do { \
if (GEM5_UNLIKELY(TRACING_ON && ::gem5::debug::x)) { \
::gem5::trace::getDebugLogger()->dprintf_flag( \
::gem5::curTick(), (s)->name(), #x, __VA_ARGS__); \
} \
} while (0)

Definition at line 216 of file trace.hh.

◆ DPRINTFV

#define DPRINTFV (   x,
  ... 
)
Value:
do { \
if (GEM5_UNLIKELY(TRACING_ON && (x))) { \
::gem5::trace::getDebugLogger()->dprintf_flag( \
::gem5::curTick(), name(), x.name(), __VA_ARGS__); \
} \
} while (0)

Definition at line 230 of file trace.hh.

Function Documentation

◆ name()

const std::string & name ( )

Definition at line 48 of file trace.cc.

Referenced by sc_core::sc_in< T >::add_trace(), sc_core::sc_in< bool >::add_trace(), sc_core::sc_in< sc_dt::sc_logic >::add_trace(), sc_core::sc_inout< T >::add_trace(), sc_core::sc_inout< bool >::add_trace(), sc_core::sc_inout< sc_dt::sc_logic >::add_trace(), gem5::statistics::Hdf5::addMetaData(), gem5::statistics::Hdf5::addMetaData(), gem5::statistics::Hdf5::addMetaData(), gem5::statistics::Hdf5::addMetaData(), sc_gem5::VcdTraceFile::addNewTraceVal(), gem5::statistics::Group::addStatGroup(), gem5::CxxConfigParams::AddToConfigDir::AddToConfigDir(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceFile::addTraceVal(), sc_gem5::VcdTraceScope::addValue(), gem5::fastmodel::PL330::allocateIrq(), gem5::arrayParamIn(), gem5::arrayParamIn(), gem5::arrayParamIn(), gem5::arrayParamIn(), gem5::arrayParamIn(), gem5::arrayParamOut(), gem5::arrayParamOut(), gem5::arrayParamOut(), gem5::arrayParamOut(), gem5::memory::SharedMemoryServer::ListenSocketEvent::BaseShmPollEvent(), gem5::statistics::Hdf5::beginGroup(), gem5::statistics::Text::beginGroup(), gem5::ListenSocketConfig::build(), sc_core::sc_signal< sc_dt::sc_int< W > >::check_writer(), sc_core::sc_signal< sc_dt::sc_bigint< W > >::check_writer(), sc_core::sc_signal< sc_dt::sc_uint< W > >::check_writer(), sc_core::sc_signal< sc_dt::sc_biguint< W > >::check_writer(), gem5::OutputDirectory::checkForStdio(), gem5::checkSeg(), gem5::SDMAEngine::constFill(), gem5::SDMAEngine::copy(), gem5::SDMAEngine::copyDone(), gem5::SDMAEngine::copyReadData(), gem5::NSGigE::cpuIntrPost(), gem5::sinic::Base::cpuIntrPost(), gem5::OutputDirectory::create(), gem5::OutputDirectory::createSubdirectory(), gem5::ObjectMatch::domatch(), gem5::trace::Logger::dprintf(), gem5::trace::Logger::dprintf_flag(), gem5::BaseStackTrace::dump(), sc_gem5::ScSignalBaseT< T, WRITER_POLICY >::dump(), gem5::trace::Logger::dump(), gem5::ArmKvmCPU::dumpKvmStateCoProc(), gem5::dumpSimcall(), gem5::dumpSimcall(), sc_core::sc_in_resolved::end_of_elaboration(), sc_core::sc_in_rv< W >::end_of_elaboration(), sc_core::sc_inout_resolved::end_of_elaboration(), sc_core::sc_inout_rv< W >::end_of_elaboration(), gem5::scmi::EndBitUnion(), gem5::Iris::ThreadContext::extractResourceId(), gem5::Iris::ThreadContext::extractResourceMap(), gem5::loader::SymbolTable::find(), gem5::OutputDirectory::find(), sc_gem5::findEvent(), gem5::debug::findFlag(), sc_gem5::findObject(), gem5::OutputDirectory::findOrCreate(), gem5::GicV2::getCpuTarget(), gem5::StubSlavePortHandler::getExternalPort(), gem5::gethostnameFunc(), gem5::statistics::Group::Group(), gem5::loader::ElfObject::handleLoadableSegment(), gem5::EmbeddedPyBind::init(), gem5::X86ISA::Interrupts::init(), gem5::CpuLocalTimer::init(), gem5::Iris::ThreadContext::instanceRegistryChanged(), gem5::OutputDirectory::isAbsolute(), gem5::trace::Logger::isEnabled(), gem5::OutputDirectory::isFile(), gem5::listenSocketInetConfig(), gem5::listenSocketUnixAbstractConfig(), gem5::listenSocketUnixFileConfig(), gem5::trace::OstreamLogger::logMessage(), gem5::LupioTMR::LupioTMR(), gem5::ObjectMatch::match(), sc_gem5::newCThreadProcess(), sc_gem5::newMethodProcess(), sc_gem5::newThreadProcess(), sc_gem5::VcdTraceFile::nextSignalName(), Nop(), gem5::objParamIn(), gem5::OutputDirectory::open(), sc_core::sc_attr_cltn::operator[](), sc_core::sc_attr_cltn::operator[](), gem5::optParamIn(), sc_gem5::VcdTraceScope::output(), gem5::OutputDirectory::OutputDirectory(), gem5::paramIn(), gem5::paramIn(), gem5::paramInImpl(), gem5::paramOut(), gem5::paramOut(), gem5::Iris::ThreadContext::phaseInitLeave(), gem5::fastmodel::PL330::PL330(), gem5::SDMAEngine::ptePde(), gem5::SDMAEngine::ptePdeDone(), gem5::pybind_init_stats(), gem5::PybindModuleInit::PybindModuleInit(), gem5::AmbaFake::read(), gem5::IsaFake::read(), gem5::UFSHostDevice::readCallback(), gem5::PciDevice::readConfig(), gem5::UFSHostDevice::readDevice(), sc_gem5::ScSignalBaseT< T, WRITER_POLICY >::register_port(), sc_core::sc_signal< sc_dt::sc_int< W > >::register_port(), sc_core::sc_signal< sc_dt::sc_bigint< W > >::register_port(), sc_core::sc_signal< sc_dt::sc_uint< W > >::register_port(), sc_core::sc_signal< sc_dt::sc_biguint< W > >::register_port(), gem5::Ticked::regStats(), gem5::CheckerThreadContext< TC >::regStats(), sc_core::sc_attr_cltn::remove(), gem5::OutputDirectory::remove(), gem5::UFSHostDevice::requestHandler(), gem5::statistics::resolve(), gem5::OutputDirectory::resolve(), gem5::PybindSimObjectResolver::resolveSimObject(), gem5::CxxConfigManager::SimObjectResolver::resolveSimObject(), gem5::statistics::Group::resolveStat(), sc_core::sc_clock::sc_clock(), sc_core::sc_create_vcd_trace_file(), sc_core::sc_find_event(), sc_core::sc_find_object(), sc_core::sc_hierarchical_name_exists(), SC_MODULE(), sc_core::sc_module_name::sc_module_name(), sc_core::sc_report_compose_message(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace(), sc_core::sc_trace< bool >(), sc_core::sc_trace< bool >(), sc_core::sc_trace< sc_dt::sc_logic >(), sc_core::sc_trace< sc_dt::sc_logic >(), gem5::fastmodel::SCGIC::SCGIC(), gem5::Serializable::ScopedCheckpointSection::ScopedCheckpointSection(), gem5::Serializable::ScopedCheckpointSection::ScopedCheckpointSection(), gem5::fastmodel::ScxEvsCortexA76< Types >::ScxEvsCortexA76(), gem5::fastmodel::ScxEvsCortexR52< Types >::ScxEvsCortexR52(), gem5::Serializable::serializeSection(), gem5::Serializable::serializeSection(), gem5::ruby::TimerTable::setDescription(), gem5::CheckpointIn::setDir(), sc_gem5::spawnWork(), gem5::statistics::Text::statName(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), gem5::MipsISA::unameFunc(), gem5::PowerISA::unameFunc(), gem5::SparcISA::unameFunc(), gem5::X86ISA::unameFunc(), gem5::ArmISA::unameFunc32(), gem5::RiscvISA::unameFunc32(), gem5::ArmISA::unameFunc64(), gem5::RiscvISA::unameFunc64(), gem5::NSGigE::unserialize(), gem5::sinic::Base::unserialize(), gem5::MemState::unserialize(), gem5::loader::SymbolTable::unserialize(), gem5::Serializable::unserializeSection(), gem5::Serializable::unserializeSection(), gem5::qemu::FwCfg::Directory::update(), gem5::statistics::validateStatName(), gem5::AmbaFake::write(), gem5::IsaFake::write(), gem5::PciDevice::writeConfig(), gem5::UFSHostDevice::writeDevice(), gem5::SDMAEngine::writeDone(), gem5::SDMAEngine::writeReadData(), and gem5::X86IdeController::X86IdeController().


Generated on Mon Jan 13 2025 04:28:46 for gem5 by doxygen 1.9.8