31typedef struct print_buffer {
59#define fatal_cond(cond, ...) \
61 if (unlikely(cond)) { fatal(__VA_ARGS__); } \
64#define fatal_cond0(cond, ...) \
66 if (unlikely(cond)) { fatal0(__VA_ARGS__); } \
69#define fatal_cond_strerror(cond) \
72 if (unlikely(_error)) fatal(#cond ":%s", strerror(_error)); \
75#define verbose(flag, ...) \
77 if (unlikely(vb_opts != VB_CLEAR)) { verbose(flag, __VA_ARGS__); } \
80#define verbose0(flag, ...) \
82 if (unlikely(vb_opts != VB_CLEAR)) { verbose0(flag, __VA_ARGS__); } \
85#define debug_warning(fmt, ...) \
86 debug_warning_impl(__FILE__, __LINE__, __func__, fmt, ##__VA_ARGS__)
90#define DLB_DEBUG(stmt) do { stmt; } while(0)
92#define DLB_DEBUG(stmt) do { (void)0; } while(0)
96#define ensure(cond, ...) \
98 if (likely(cond)) ; else { fatal(__VA_ARGS__); } \
102#if __STDC_VERSION__ >= 202311L
103 #define static_ensure(cond, msg) static_assert(cond, msg)
104#elif __STDC_VERSION__ >= 201112L
105 #define static_ensure(cond, msg) _Static_assert(cond, msg)
107 #define static_ensure(cond, msg) \
109 enum { assert_static__ = 1 / (!!(cond)) }; \
114#define ensure(cond, ...) do { (void)0; } while(0)
115#define static_ensure(cond, ...) do { (void)0; } while(0)
120#define ANSI_COLOR_RED "\x1b[31m"
121#define ANSI_COLOR_GREEN "\x1b[32m"
122#define ANSI_COLOR_YELLOW "\x1b[33m"
123#define ANSI_COLOR_BLUE "\x1b[34m"
124#define ANSI_COLOR_MAGENTA "\x1b[35m"
125#define ANSI_COLOR_CYAN "\x1b[36m"
126#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:446
void void warning0(const char *fmt,...) __attribute__((format(printf
void void void void void void void void debug_warning_impl(const char *file, int line, const char *func, const char *fmt,...) __attribute__((format(printf
void printbuffer_init(print_buffer_t *buffer)
Definition: debug.c:439
void void void info(const char *fmt,...) __attribute__((format(printf
void warn_error(int error)
Definition: debug.c:399
void void void void void info0_force_print(const char *fmt,...) __attribute__((format(printf
#define verbose(flag,...)
Definition: debug.h:75
#define verbose0(flag,...)
Definition: debug.h:80
void debug_init(const options_t *options)
Definition: debug.c:68
void void void void void void void void void print_backtrace(void)
Definition: debug.c:320
verbose_opts_t vb_opts
Definition: debug.c:57
void fatal0(const char *fmt,...) __attribute__((format(printf
void dlb_clean(void)
Definition: debug.c:358
void printbuffer_append_no_newline(print_buffer_t *buffer, const char *text)
Definition: debug.c:489
void printbuffer_append(print_buffer_t *buffer, const char *line)
Definition: debug.c:485
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