gem5  v21.1.0.2
Classes | Namespaces | Macros
logging.hh File Reference
#include <cassert>
#include <sstream>
#include <utility>
#include "base/compiler.hh"
#include "base/cprintf.hh"

Go to the source code of this file.

Classes

class  gem5::Logger
 
struct  gem5::Logger::Loc
 

Namespaces

 gem5
 Reference material can be found at the JEDEC website: UFS standard http://www.jedec.org/standards-documents/results/jesd220 UFS HCI specification http://www.jedec.org/standards-documents/results/jesd223.
 

Macros

#define base_message(logger, ...)   logger.print(::gem5::Logger::Loc(__FILE__, __LINE__), __VA_ARGS__)
 
#define base_message_once(...)
 
#define exit_message(logger, ...)
 
#define panic(...)   exit_message(::gem5::Logger::getPanic(), __VA_ARGS__)
 This implements a cprintf based panic() function. More...
 
#define fatal(...)   exit_message(::gem5::Logger::getFatal(), __VA_ARGS__)
 This implements a cprintf based fatal() function. More...
 
#define panic_if(cond, ...)
 Conditional panic macro that checks the supplied condition and only panics if the condition is true and allows the programmer to specify diagnostic printout. More...
 
#define fatal_if(cond, ...)
 Conditional fatal macro that checks the supplied condition and only causes a fatal error if the condition is true and allows the programmer to specify diagnostic printout. More...
 
#define chatty_assert(cond, ...)
 The chatty assert macro will function like a normal assert, but will allow the specification of additional, helpful material to aid debugging why the assertion actually failed. More...
 
#define warn(...)   base_message(::gem5::Logger::getWarn(), __VA_ARGS__)
 
#define inform(...)   base_message(::gem5::Logger::getInfo(), __VA_ARGS__)
 
#define hack(...)   base_message(::gem5::Logger::getHack(), __VA_ARGS__)
 
#define warn_once(...)   base_message_once(::gem5::Logger::getWarn(), __VA_ARGS__)
 
#define inform_once(...)   base_message_once(::gem5::Logger::getInfo(), __VA_ARGS__)
 
#define hack_once(...)   base_message_once(::gem5::Logger::getHack(), __VA_ARGS__)
 
#define warn_if(cond, ...)
 Conditional warning macro that checks the supplied condition and only prints a warning if the condition is true. More...
 
#define warn_if_once(cond, ...)
 

Macro Definition Documentation

◆ base_message

#define base_message (   logger,
  ... 
)    logger.print(::gem5::Logger::Loc(__FILE__, __LINE__), __VA_ARGS__)

Definition at line 142 of file logging.hh.

◆ base_message_once

#define base_message_once (   ...)
Value:
do { \
static bool once = false; \
if (!once) { \
base_message(__VA_ARGS__); \
once = true; \
} \
} while (0)

Definition at line 153 of file logging.hh.

◆ exit_message

#define exit_message (   logger,
  ... 
)
Value:
do { \
base_message(logger, __VA_ARGS__); \
logger.exit_helper(); \
} while (0)

Definition at line 161 of file logging.hh.

◆ hack

#define hack (   ...)    base_message(::gem5::Logger::getHack(), __VA_ARGS__)

Definition at line 247 of file logging.hh.

◆ inform

#define inform (   ...)    base_message(::gem5::Logger::getInfo(), __VA_ARGS__)

Definition at line 246 of file logging.hh.

◆ inform_once

#define inform_once (   ...)    base_message_once(::gem5::Logger::getInfo(), __VA_ARGS__)

Definition at line 251 of file logging.hh.

◆ warn

#define warn (   ...)    base_message(::gem5::Logger::getWarn(), __VA_ARGS__)

Definition at line 245 of file logging.hh.

◆ warn_if

#define warn_if (   cond,
  ... 
)
Value:
do { \
if (GEM5_UNLIKELY(cond)) \
warn(__VA_ARGS__); \
} while (0)

Conditional warning macro that checks the supplied condition and only prints a warning if the condition is true.

Useful to replace if + warn.

Parameters
condCondition that is checked; if true -> warn
...Printf-based format string with arguments, extends printout.

Definition at line 272 of file logging.hh.

◆ warn_once

#define warn_once (   ...)    base_message_once(::gem5::Logger::getWarn(), __VA_ARGS__)

Definition at line 249 of file logging.hh.

gem5::ArmISA::cond
cond
Definition: pcstate.hh:62

Generated on Tue Sep 21 2021 12:26:26 for gem5 by doxygen 1.8.17