From: Willy Tarreau Date: Thu, 27 Apr 2017 16:03:20 +0000 (+0200) Subject: MINOR: tools: make debug_hexdump() take a string prefix X-Git-Tag: v1.8-dev2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ed936c5d3715a1975b6d6f4e7d608cec10d55919;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/include/common/standard.h b/include/common/standard.h index 9447e36696..f94eff9204 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 1d7625486a..82b7a01a7a 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]);