Add arguments to mxb_assert_message

The macro can now be used to print runtime information in a printf-like
manner. This makes it easier to see exactly why an assertion has failed.
This commit is contained in:
Markus Mäkelä
2019-06-11 13:29:12 +03:00
parent 74f61c233d
commit 6166da76ea
3 changed files with 9 additions and 5 deletions

View File

@ -31,9 +31,11 @@ MXB_BEGIN_DECLS
fprintf(stderr, "debug assert at %s:%d failed: %s\n", (char*)__FILE__, __LINE__, debug_expr); \
raise(SIGABRT);}} while (false)
#define mxb_assert_message(exp, message) \
#define mxb_assert_message(exp, fmt, ...) \
do {if (exp) {} else { \
const char* debug_expr = #exp; \
char message[1024]; \
snprintf(message, sizeof(message), fmt, ##__VA_ARGS__); \
MXB_ERROR("debug assert at %s:%d failed: %s (%s)\n", \
(char*)__FILE__, \
__LINE__, \