| 1234567891011121314151617181920212223242526 |
- #ifndef __KERNEL_DEBUG_H
- #define __KERNEL_DEBUG_H
- void panic_spin(char *filename, int line, const char *func, const char *condition);
- /**
- * @brief panic 是一个宏,__VA_ARGS__ 表示可变参数,即 ...,用于传递参数
- * __VA_ARGS__ 是预处理器所支持的专用标识符。代表所有与省略号相对应的参数
- * “...” 表示定义的宏其参数可变
- */
- #define PANIC(...) panic_spin(__FILE__, __LINE__, __func__, __VA_ARGS__)
- #ifdef NDEBUG
- #define ASSERT(CONDITION) ((void)0)
- #else
- #define ASSERT(CONDITION) \
- if (CONDITION) \
- { \
- } \
- else \
- { \
- PANIC(#CONDITION); \
- }
- #endif // NDEBUG
- #endif // __KERNEL_DEBUG_H
|