From 5c6f58fe87f8f47a215d534d8fa1a41b16cbe182 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 13 Jun 2008 22:36:31 +0200 Subject: [PATCH] [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... --- include/common/debug.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/common/debug.h b/include/common/debug.h index 1e529853f..cbd752ef6 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 */