From 3d2f16f3c3a1a5a906f904b3bc7e435ce232668e Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sun, 13 May 2012 00:21:17 +0200 Subject: [PATCH] MINOR: standard: add a new debug macro : fddebug() This macro is usable like printf but sends messages to fd #-1, which has no visible effect but is easy to spot in strace. This is very useful to put tracers at many points during debugging sessions. --- include/common/standard.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/common/standard.h b/include/common/standard.h index 83b1fc042..e7c5ebd9a 100644 --- a/include/common/standard.h +++ b/include/common/standard.h @@ -705,4 +705,10 @@ char *gmt2str_log(char *dst, struct tm *tm, size_t size); char *memprintf(char **out, const char *format, ...) __attribute__ ((format(printf, 2, 3))); + +/* debugging macro to emit messages using write() on fd #-1 so that strace sees + * them. + */ +#define fddebug(msg...) do { char *_m = NULL; memprintf(&_m, ##msg); if (_m) write(-1, _m, strlen(_m)); free(_m); } while (0) + #endif /* _COMMON_STANDARD_H */