Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

trace.h 736B

123456789101112131415161718192021222324252627282930313233
  1. #ifndef L2_TRACE_H
  2. #define L2_TRACE_H
  3. #if !L2_ENABLE_TRACE
  4. #define l2_trace_scope(name) do {} while (0)
  5. #define l2_trace_func() do {} while (0)
  6. #define l2_trace_push(name) do {} while (0)
  7. #define l2_trace_pop() do {} while (0)
  8. #define l2_trace(...) do {} while (0)
  9. #else
  10. extern int l2_trace_depth;
  11. #ifdef __GNUC__
  12. #define l2_trace_scope(name) \
  13. l2_trace_push(name); \
  14. __attribute__((cleanup(l2_trace_cleanup))) int l2_trace_scope
  15. #define l2_trace_func() l2_trace_scope(__func__)
  16. #else
  17. #define l2_trace_scope(name) l2_trace(name)
  18. #define l2_trace_func() l2_trace(__func__)
  19. #endif
  20. void l2_trace_push(const char *name);
  21. void l2_trace_pop();
  22. void l2_trace(const char *fmt, ...);
  23. void l2_trace_cleanup(void *unused);
  24. #endif
  25. #endif