From ed936c5d3715a1975b6d6f4e7d608cec10d55919 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 27 Apr 2017 18:03:20 +0200 Subject: [PATCH] MINOR: tools: make debug_hexdump() take a string prefix When dumping data at various places in the code, it's hard to figure what is present where. To make this easier, this patch slightly modifies debug_hexdump() to take a prefix string which is prepended in front of each output line. --- include/common/standard.h | 5 +++-- src/standard.c | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/include/common/standard.h b/include/common/standard.h index 9447e36..f94eff9 100644 --- a/include/common/standard.h +++ b/include/common/standard.h @@ -1079,9 +1079,10 @@ char *env_expand(char *in); #define fddebug(msg...) do { char *_m = NULL; memprintf(&_m, ##msg); if (_m) write(-1, _m, strlen(_m)); free(_m); } while (0) /* displays a long memory block at , assuming first byte of - * has address . The output is emitted to file . + * has address . String may be placed as a prefix in front of + * each line. It may be NULL if unused. The output is emitted to file . */ -void debug_hexdump(FILE *out, const char *buf, unsigned int baseaddr, int len); +void debug_hexdump(FILE *out, const char *pfx, const char *buf, unsigned int baseaddr, int len); /* used from everywhere just to drain results we don't want to read and which * recent versions of gcc increasingly and annoyingly complain about. diff --git a/src/standard.c b/src/standard.c index 1d76254..82b7a01 100644 --- a/src/standard.c +++ b/src/standard.c @@ -3780,16 +3780,18 @@ int dump_text_line(struct chunk *out, const char *buf, int bsize, int len, } /* displays a long memory block at , assuming first byte of - * has address . The output is emitted to file . + * has address . String may be placed as a prefix in front of + * each line. It may be NULL if unused. The output is emitted to file . */ -void debug_hexdump(FILE *out, const char *buf, unsigned int baseaddr, int len) +void debug_hexdump(FILE *out, const char *pfx, const char *buf, + unsigned int baseaddr, int len) { unsigned int i; int b, j; for (i = 0; i < (len + (baseaddr & 15)); i += 16) { b = i - (baseaddr & 15); - fprintf(out, "%08x: ", i + (baseaddr & ~15)); + fprintf(out, "%s%08x: ", pfx ? pfx : "", i + (baseaddr & ~15)); for (j = 0; j < 8; j++) { if (b + j >= 0 && b + j < len) fprintf(out, "%02x ", (unsigned char)buf[b + j]); -- 1.7.10.4