35 static thread_local const Trace* Top;
36 static thread_local std::uintmax_t Size;
41 static void PrintStackTrace(std::ostream& out,
const std::string& pre =
"");
75#define ARMARX_TRACE _detail_TRACE_expand(__FILE__, __LINE__, __COUNTER__)
76#define _detail_TRACE_expand(...) _detail_TRACE_mk_var(__VA_ARGS__)
77#define _detail_TRACE_mk_var(fi, li, cnt) _detail_TRACE(fi, li, _detail_trace_variable_##cnt##_##li)
78#define _detail_TRACE(fi, li, var) \
79 static constexpr auto var##_cfunc = __PRETTY_FUNCTION__; \
80 const struct var##TraceType : ::armarx::detail::Trace \
82 ::armarx::detail::LocationProvider::Location static Location() \
84 return {fi, var##_cfunc, li}; \
86 var##TraceType() : Trace{var##TraceType::Location} \
96#define ARMARX_TRACE_LITE _detail_TRACElite_expand(__FILE__, __LINE__, __COUNTER__)
97#define _detail_TRACElite_expand(...) _detail_TRACElite_mk_var(__VA_ARGS__)
98#define _detail_TRACElite_mk_var(fi, li, cnt) \
99 _detail_TRACElite_f(fi, li, _detail_trace_variable_##cnt##_##li)
100#define _detail_TRACElite_f(fi, li, var) \
101 [[maybe_unused]] struct var##TraceType : ::armarx::detail::Trace \
103 ::armarx::detail::LocationProvider::Location static Location() \
105 return {fi, "fuction name is unknown!", li}; \
107 var##TraceType(const ::armarx::LogSender&) : Trace{var##TraceType::Location} \
110 var##TraceType() : Trace{var##TraceType::Location} \
This file offers overloads of toIce() and fromIce() functions for STL container types.
Trace(LocationProvider::FncLoc l)
const LocationProvider location
static void PrintExceptionBacktrace(std::ostream &out, const std::string &pre="")
static void ClearExceptionBacktrace()
const int uncaughtExceptions
static std::uintmax_t GetStackTraceSize()
static void PrintStackTrace(std::ostream &out, const std::string &pre="")