123456789101112131415161718192021222324252627282930313233 |
- #ifndef L2_TRACE_H
- #define L2_TRACE_H
-
- #if !L2_ENABLE_TRACE
-
- #define l2_trace_scope(name) do {} while (0)
- #define l2_trace_func() do {} while (0)
- #define l2_trace_push(name) do {} while (0)
- #define l2_trace_pop() do {} while (0)
- #define l2_trace(...) do {} while (0)
-
- #else
-
- extern int l2_trace_depth;
-
- #ifdef __GNUC__
- #define l2_trace_scope(name) \
- l2_trace_push(name); \
- __attribute__((unused,cleanup(l2_trace_cleanup))) int l2_trace_scope
- #define l2_trace_func() l2_trace_scope(__func__)
- #else
- #define l2_trace_scope(name) l2_trace(name)
- #define l2_trace_func() l2_trace(__func__)
- #endif
-
- void l2_trace_push(const char *name);
- void l2_trace_pop();
- void l2_trace(const char *fmt, ...);
- void l2_trace_cleanup(void *unused);
-
- #endif
-
- #endif
|