debug.h 771 B

1234567891011121314151617181920212223242526
  1. #ifndef __KERNEL_DEBUG_H
  2. #define __KERNEL_DEBUG_H
  3. void panic_spin(char *filename, int line, const char *func, const char *condition);
  4. /**
  5. * @brief panic 是一个宏,__VA_ARGS__ 表示可变参数,即 ...,用于传递参数
  6. * __VA_ARGS__ 是预处理器所支持的专用标识符。代表所有与省略号相对应的参数
  7. * “...” 表示定义的宏其参数可变
  8. */
  9. #define PANIC(...) panic_spin(__FILE__, __LINE__, __func__, __VA_ARGS__)
  10. #ifdef NDEBUG
  11. #define ASSERT(CONDITION) ((void)0)
  12. #else
  13. #define ASSERT(CONDITION) \
  14. if (CONDITION) \
  15. { \
  16. } \
  17. else \
  18. { \
  19. PANIC(#CONDITION); \
  20. }
  21. #endif // NDEBUG
  22. #endif // __KERNEL_DEBUG_H