Elementa v8.0.0
Minimalistic library for any C++ application (C++11 and up)
Loading...
Searching...
No Matches
debugging.h File Reference
#include "elementa/license.inc"
#include "elementa/checks.inc"
#include <string>
#include <iostream>
#include <sstream>
#include "elementa/base/enums.h"
#include "elementa/base/threads.h"
Include dependency graph for debugging.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

TRACING SYSTEM
#define ELE_CODE_TRACE_ON
 Place this inside local scope (e.g., routine) to activate traces there. More...
 
#define ELE_CODE_TRACE_OFF
 Place this inside local scope (e.g., routine) to deactivate traces there. More...
 
#define ELE_CODE_TRACE_IF   if (false) {
 Place this before a part of code that should be executed in debug only. More...
 
#define ELE_CODE_TRACE_ELSE   } else {
 Place this between if and endif. More...
 
#define ELE_CODE_TRACE_ENDIF   }
 Place this after a part of code that should be executed in debug only. More...
 
#define ELE_PRE_TRACE_PREFFIX   "--- TR : "
 Preffix added to any trace. More...
 
#define ELE_CODE_TRACE(flags, ...)   {}
 
#define ELE_CODE_TRACEPOINT   {}
 
#define ELE_CODE_TRACENUDE(...)   {}
 
#define ELE_CODE_PAUSE(flags, ...)   {}
 
#define ELE_CODE_UNTRACE(flags, ...)
 Macro to use instead of an existing ELE_CODE_TRACE to deactivate that trace. More...
 
#define ELE_CODE_UNTRACEPOINT
 Macro to use instead of an existing ELE_CODE_TRACEPOINT to deactivate it. More...
 
#define ELE_CODE_UNPAUSE(flags, ...)
 Macro to use instead of an existing ELE_CODE_PAUSE to deactivate that trace. More...
 
#define ELE_CODE_UNTRACE_IF   if (false) {
 Macro to use instead of an existing ELE_CODE_TRACE_IF to deactivate it. More...
 
#define ELE_CODE_UNTRACE_ELSE   } else {
 Macro to use instead of an existing ELE_CODE_TRACE_ELSE to deactivate it. More...
 
#define ELE_CODE_UNTRACE_ENDIF   }
 Macro to use instead of an existing ELE_CODE_TRACE_ENDIF to deactivate it. More...
 

UTILITIES FOR SOURCE CODE INSPECTION IN RUN-TIME

#define ELE_PRE_FILELONGNAME   std::string{__FILE__}
 Long name of the current source file, as a std::string. More...
 
#define ELE_PRE_FILEBASENAME
 Base name of current src file (computed in runtime), as a std::string. More...
 
#define ELE_CODE_PLACE
 Produces a std::string with the place of source where the macro is placed. More...
 
#define ELE_CODE_LONGPLACE
 Produces a string with the place of source code where the macro is placed. More...
 
constexpr char elementa::base::kHiddenPlaceMsg [] = "place hidden in production"
 Constant text hiding runtime place when the program is in production. More...
 
 elementa::base::ELE_CLASS_ENUM (RTTextWith, kTime, kThread)
 Flags for selecting what to include in runtime text in addition to the place. More...
 
std::string elementa::base::runtime_src_place (const std::string &place, const RTTextWithEnum::Combination &flags={}, const std::string &placepreff="Place:", const std::string &timepreff="Time:", const std::string &threadpreff="Thread:")
 Return a string with info about a place, time and thread during execution. More...