4.3 Assertions

/* Assertion macros */
#define d3tui_assert(cond) \
    do { \
        if (!(cond)) { \
            d3tui_log_error("Assertion failed: %s at %s:%d in %s", \
                           #cond, __FILE__, __LINE__, __func__); \
            d3tui_debug_break(); \
        } \
    } while (0)

#define d3tui_assert_msg(cond, msg) \
    do { \
        if (!(cond)) { \
            d3tui_log_error("Assertion failed: %s (%s) at %s:%d in %s", \
                           #cond, msg, __FILE__, __LINE__, __func__); \
            d3tui_debug_break(); \
        } \
    } while (0)

/* Debug break */
void d3tui_debug_break(void);