gem5  v20.1.0.0
Classes | 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  Logger
 
struct  Logger::Loc
 

Macros

#define base_message(logger, ...)   logger.print(::Logger::Loc(__FILE__, __LINE__), __VA_ARGS__)
 
#define base_message_once(...)
 
#define exit_message(logger, ...)
 
#define panic(...)   exit_message(::Logger::getPanic(), __VA_ARGS__)
 This implements a cprintf based panic() function. More...
 
#define fatal(...)   exit_message(::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(::Logger::getWarn(), __VA_ARGS__)
 
#define inform(...)   base_message(::Logger::getInfo(), __VA_ARGS__)
 
#define hack(...)   base_message(::Logger::getHack(), __VA_ARGS__)
 
#define warn_once(...)   base_message_once(::Logger::getWarn(), __VA_ARGS__)
 
#define inform_once(...)   base_message_once(::Logger::getInfo(), __VA_ARGS__)
 
#define hack_once(...)   base_message_once(::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(::Logger::Loc(__FILE__, __LINE__), __VA_ARGS__)

Definition at line 136 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 147 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 155 of file logging.hh.

◆ hack

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

Definition at line 241 of file logging.hh.

◆ inform

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

Definition at line 240 of file logging.hh.

◆ inform_once

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

Definition at line 244 of file logging.hh.

◆ warn

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

Definition at line 239 of file logging.hh.

◆ warn_if

#define warn_if (   cond,
  ... 
)
Value:
do { \
if ((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 263 of file logging.hh.

◆ warn_once

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

Definition at line 243 of file logging.hh.

ArmISA::cond
cond
Definition: types.hh:61

Generated on Wed Sep 30 2020 14:02:18 for gem5 by doxygen 1.8.17