Go to the documentation of this file.
7 #include <boost/current_function.hpp>
37 static thread_local
const Trace* Top;
38 static thread_local std::uintmax_t Size;
43 static void PrintStackTrace(std::ostream& out,
const std::string& pre =
"");
77 #define ARMARX_TRACE _detail_TRACE_expand(__FILE__, __LINE__, __COUNTER__)
78 #define _detail_TRACE_expand(...) _detail_TRACE_mk_var(__VA_ARGS__)
79 #define _detail_TRACE_mk_var(fi, li, cnt) _detail_TRACE(fi, li, _detail_trace_variable_##cnt##_##li)
80 #define _detail_TRACE(fi, li, var) \
81 static constexpr auto var##_cfunc = BOOST_CURRENT_FUNCTION; \
82 const struct var##TraceType : ::armarx::detail::Trace \
84 ::armarx::detail::LocationProvider::Location static Location() \
86 return {fi, var##_cfunc, li}; \
88 var##TraceType() : Trace{var##TraceType::Location} \
98 #define ARMARX_TRACE_LITE _detail_TRACElite_expand(__FILE__, __LINE__, __COUNTER__)
99 #define _detail_TRACElite_expand(...) _detail_TRACElite_mk_var(__VA_ARGS__)
100 #define _detail_TRACElite_mk_var(fi, li, cnt) \
101 _detail_TRACElite_f(fi, li, _detail_trace_variable_##cnt##_##li)
102 #define _detail_TRACElite_f(fi, li, var) \
103 [[maybe_unused]] struct var##TraceType : ::armarx::detail::Trace \
105 ::armarx::detail::LocationProvider::Location static Location() \
107 return {fi, "fuction name is unknown!", li}; \
109 var##TraceType(const ::armarx::LogSender&) : Trace{var##TraceType::Location} \
112 var##TraceType() : Trace{var##TraceType::Location} \
Trace(LocationProvider::FncLoc l)
static void PrintStackTrace(std::ostream &out, const std::string &pre="")
const int uncaughtExceptions
T Trace(const MatrixXX< N, N, T > &a)
static std::uintmax_t GetStackTraceSize()
const LocationProvider location
static void ClearExceptionBacktrace()
static void PrintExceptionBacktrace(std::ostream &out, const std::string &pre="")
This file offers overloads of toIce() and fromIce() functions for STL container types.