7 #define MF_DEBUG_HEADER(caption, separator) \
8 ::mf::detail::debug_header { caption, separator, __FILE__, __LINE__, __func__ }
10 #define MF_DEBUG_T(tag, ...) \
11 ::mf::detail::debug_print( \
13 MF_DEBUG_HEADER("", ""), \
16 #define MF_DEBUG(...) MF_DEBUG_T("", __VA_ARGS__)
18 #define MF_DEBUG_EXPR_T(tag, ...) \
19 ([&](const ::mf::detail::debug_header& header, auto... args) { \
20 ::mf::detail::debug_print(tag, header, args...); \
21 })(MF_DEBUG_HEADER("(" #__VA_ARGS__ ") = ", ", "), __VA_ARGS__)
23 #define MF_DEBUG_EXPR(...) MF_DEBUG_EXPR_T("", __VA_ARGS__)
25 #define MF_DEBUG_BACKTRACE(caption) \
26 ::mf::detail::debug_print_backtrace( \
27 MF_DEBUG_HEADER(caption "\nbacktrace:", ""), \
28 ::mf::detail::debug_get_backtrace())
32 #define MF_DEBUG_T(...) ((void)0)
33 #define MF_DEBUG(...) ((void)0)
34 #define MF_DEBUG_EXPR_T(...) ((void)0)
35 #define MF_DEBUG_EXPR(...) ((void)0)
36 #define MF_DEBUG_BACKTRACE() ((void)0)
void set_debug_mode(debug_mode mode)
Definition: debug.cc:138
void set_no_debug_filter()
Definition: debug.cc:142
void initialize_debug()
Definition: debug.cc:153
void set_debug_filter(const std::set< std::string > &tags)
Definition: debug.cc:147
debug_mode
Definition: debug.h:45