Go to the documentation of this file.
3 #include <boost/current_function.hpp>
34 static thread_local
const Trace* Top;
35 static thread_local std::uintmax_t Size;
40 static void PrintStackTrace(std::ostream& out,
const std::string& pre =
"");
69 #define ARMARX_TRACE _detail_TRACE_expand(__FILE__, __LINE__, __COUNTER__)
70 #define _detail_TRACE_expand(...) _detail_TRACE_mk_var(__VA_ARGS__)
71 #define _detail_TRACE_mk_var(fi, li, cnt) _detail_TRACE(fi, li, _detail_trace_variable_ ## cnt ## _ ## li)
72 #define _detail_TRACE(fi, li, var) \
73 static constexpr auto var ## _cfunc = BOOST_CURRENT_FUNCTION; \
74 const struct var ## TraceType: ::armarx::detail::Trace \
76 ::armarx::detail::LocationProvider::Location static Location() {return {fi, var ## _cfunc, li};} \
77 var ## TraceType() : Trace{var ## TraceType::Location} {} \
85 #define ARMARX_TRACE_LITE _detail_TRACElite_expand(__FILE__, __LINE__, __COUNTER__)
86 #define _detail_TRACElite_expand(...) _detail_TRACElite_mk_var(__VA_ARGS__)
87 #define _detail_TRACElite_mk_var(fi, li, cnt) _detail_TRACElite_f(fi, li, _detail_trace_variable_ ## cnt ## _ ## li)
88 #define _detail_TRACElite_f(fi, li, var) \
89 [[maybe_unused]] struct var ## TraceType: ::armarx::detail::Trace \
91 ::armarx::detail::LocationProvider::Location static Location() {return {fi, "fuction name is unknown!", li};} \
92 var ## TraceType(const ::armarx::LogSender&) : Trace{var ## TraceType::Location} {} \
93 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.