7#define UNUSED __attribute__ ((unused))
8#define NO_RETURN __attribute__ ((noreturn))
9#define NO_INLINE __attribute__ ((noinline))
10#define PRINTF_FORMAT(FMT, FIRST) __attribute__ ((format (printf, FMT, FIRST)))
14#define PANIC(...) debug_panic (__FILE__, __LINE__, __func__, __VA_ARGS__)
31#define ASSERT(CONDITION) \
32 if (CONDITION) { } else { \
33 PANIC ("assertion `%s' failed.", #CONDITION); \
35#define NOT_REACHED() PANIC ("executed an unreachable statement");
37#define ASSERT(CONDITION) ((void) 0)
38#define NOT_REACHED() for (;;)
#define PRINTF_FORMAT(FMT, FIRST)
void debug_backtrace_all(void)
Prints call stack of all threads.
void debug_backtrace(void)
Prints the call stack, that is, a list of addresses, one in each of the functions we are nested withi...
void debug_panic(const char *file, int line, const char *function, const char *message,...) PRINTF_FORMAT(4