debug_msgx
debug_msgx(_c, _m, _s); \
debug_msgx(_c, _m, _s, _d1); \
debug_msgx(_c, _m, _s, _d1, _d2); \
debug_msgx(_c, _m, _s, _d1, _d2, _d3); \
debug_msgx(_c, _m, _s, _d1, _d2, _d3, _d4); \
debug_msgx(_c, _m, _s, _d1, _d2, _d3, _d4, _d5); \
debug_msgx(_c, _m, _s, _d1,_d2,_d3,_d4,_d5,_d6); \
void debug_msgx(void *ctx, unsigned long level, char *msg, ...);
debug_msgx(
debug_msgx((_level), "TrLv<%d>, %s (%4d): ", ((_level) & LV_MASK), __FILE_STRIPPED__, __LINE__); \
debug_msgx(FATAL, "DEBUG BREAK!\n"); \
debug_msgx(FATAL, "Condition failed: if("#_cond##")\n"); \
debug_msgx(FATAL, "Debug Break Message: " _s); \
#define dbg_out(_c, _m, _s, _d1) debug_msgx((WARN), "TrLv<%d>, %s (%4d): %p"##_s" %s\n", ((WARN) & LV_MASK), __FILE_STRIPPED__, __LINE__, _c, _d1 )
debug_msgx(
#define debug_message(l, fmt, ...) debug_msgx(l, fmt, ##__VA_ARGS__)
#define dbg_out(_c, _m, _s, _d1) debug_msgx((WARN), "TrLv<%d>, %s (%4d): %p"##_s" %s\n", ((WARN) & LV_MASK), __FILE_STRIPPED__, __LINE__, _c, _d1 )
debug_msgx(
debug_msgx(FATAL, "DEBUG BREAK at file %s (line %4d)!\n", __FILE_STRIPPED__, __LINE__); \
debug_msgx(_m, ##_s); \
debug_msgx(_m, ##_s); \
#define dbg_out(_c, _m, _s, _d1) debug_msgx(_m, "TrLv<%d>, %s (%4d): %p"_s" %s\n", ((WARN) & LV_MASK), __FILE_STRIPPED__, __LINE__, _c, _d1 )
debug_msgx(