31typedef struct print_buffer {
57#define fatal_cond(cond, ...) \
59 if (unlikely(cond)) { fatal(__VA_ARGS__); } \
62#define fatal_cond0(cond, ...) \
64 if (unlikely(cond)) { fatal0(__VA_ARGS__); } \
67#define fatal_cond_strerror(cond) \
70 if (unlikely(_error)) fatal(#cond ":%s", strerror(_error)); \
73#define verbose(flag, ...) \
75 if (unlikely(vb_opts != VB_CLEAR)) { verbose(flag, __VA_ARGS__); } \
78#define verbose0(flag, ...) \
80 if (unlikely(vb_opts != VB_CLEAR)) { verbose0(flag, __VA_ARGS__); } \
85#define DLB_DEBUG(stmt) do { stmt; } while(0)
87#define DLB_DEBUG(stmt) do { (void)0; } while(0)
91#define debug_warning(fmt, ...) \
92 warning("%s:%d:%s(): " fmt, __FILE__, __LINE__, __func__, ##__VA_ARGS__)
94#define ensure(cond, ...) \
96 if (likely(cond)) ; else { fatal(__VA_ARGS__); } \
100#if __STDC_VERSION__ >= 202311L
101 #define static_ensure(cond, msg) static_assert(cond, msg)
102#elif __STDC_VERSION__ >= 201112L
103 #define static_ensure(cond, msg) _Static_assert(cond, msg)
105 #define static_ensure(cond, msg) \
107 enum { assert_static__ = 1 / (!!(cond)) }; \
112#define debug_warning(...) do { (void)0; } while(0)
113#define ensure(cond, ...) do { (void)0; } while(0)
114#define static_ensure(cond, ...) do { (void)0; } while(0)
119#define ANSI_COLOR_RED "\x1b[31m"
120#define ANSI_COLOR_GREEN "\x1b[32m"
121#define ANSI_COLOR_YELLOW "\x1b[33m"
122#define ANSI_COLOR_BLUE "\x1b[34m"
123#define ANSI_COLOR_MAGENTA "\x1b[35m"
124#define ANSI_COLOR_CYAN "\x1b[36m"
125#define ANSI_COLOR_RESET "\x1b[0m"
__attribute__((constructor))
Definition: DLB_interface.c:47
void fatal(const char *fmt,...) __attribute__((format(printf
void printbuffer_destroy(print_buffer_t *buffer)
Definition: debug.c:419
void void warning0(const char *fmt,...) __attribute__((format(printf
void printbuffer_init(print_buffer_t *buffer)
Definition: debug.c:412
void void void info(const char *fmt,...) __attribute__((format(printf
void warn_error(int error)
Definition: debug.c:372
void void void void void info0_force_print(const char *fmt,...) __attribute__((format(printf
#define verbose(flag,...)
Definition: debug.h:73
#define verbose0(flag,...)
Definition: debug.h:78
void void void void void void void void print_backtrace(void)
Definition: debug.c:293
void debug_init(const options_t *options)
Definition: debug.c:66
verbose_opts_t vb_opts
Definition: debug.c:56
void fatal0(const char *fmt,...) __attribute__((format(printf
void dlb_clean(void)
Definition: debug.c:331
void printbuffer_append_no_newline(print_buffer_t *buffer, const char *text)
Definition: debug.c:462
void printbuffer_append(print_buffer_t *buffer, const char *line)
Definition: debug.c:458
void warning(const char *fmt,...) __attribute__((format(printf
void __noreturn__
Definition: debug.h:38
void void void void info0(const char *fmt,...) __attribute__((format(printf
size_t len
Definition: debug.h:34
size_t size
Definition: debug.h:33
char * addr
Definition: debug.h:32
verbose_opts_t
Definition: types.h:41