[DEBUG] add a TRACE macro to facilitate runtime data extraction
The new TRACE macro is used almost like fprintf, except that a session
has to be passed instead of the file descriptor. It displays infos about
where it is called, session ptr and id, etc...
diff --git a/include/common/debug.h b/include/common/debug.h
index 1e52985..cbd752e 100644
--- a/include/common/debug.h
+++ b/include/common/debug.h
@@ -36,4 +36,18 @@
#define FSM_PRINTF(x...)
#endif
+/* this one is provided for easy code tracing.
+ * Usage: TRACE(sess||0, fmt, args...);
+ * TRACE(sess, "");
+ */
+#define TRACE(sess, fmt, args...) do { \
+ fprintf(stderr, \
+ "%d.%06d [%s:%d %s] [sess %p(%x)] " fmt "\n", \
+ (int)now.tv_sec, (int)now.tv_usec, \
+ __FILE__, __LINE__, __FUNCTION__, \
+ sess, sess?((struct session *)sess)->uniq_id:~0U, \
+ ##args); \
+ } while (0)
+
+
#endif /* _COMMON_DEBUG_H */