From 5df0994458b3fa01c19a7ebc92db5405e532ee54 Mon Sep 17 00:00:00 2001 From: Tau Date: Fri, 9 Nov 2018 15:59:01 -0500 Subject: [PATCH] util/dump.c: Add ASCII view to dump output --- util/dump.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/util/dump.c b/util/dump.c index b937603..6e85c89 100644 --- a/util/dump.c +++ b/util/dump.c @@ -11,7 +11,9 @@ void dump(const void *ptr, size_t nbytes) { const uint8_t *bytes; + uint8_t c; size_t i; + size_t j; assert(ptr != NULL); @@ -21,16 +23,31 @@ void dump(const void *ptr, size_t nbytes) bytes = ptr; - for (i = 0 ; i < nbytes ; i++) { - if (i % 16 == 0) { - dprintf("\t%08x:", i); + for (i = 0 ; i < nbytes ; i += 16) { + dprintf(" %08x:", i); + + for (j = 0 ; i + j < nbytes && j < 16 ; j++) { + dprintf(" %02x", bytes[i + j]); } - dprintf(" %02x", bytes[i]); - - if (i % 16 == 15) { - dprintf("\n"); + while (j < 16) { + dprintf(" "); + j++; } + + dprintf(" "); + + for (j = 0 ; i + j < nbytes && j < 16 ; j++) { + c = bytes[i + j]; + + if (c < 0x20 || c >= 0x7F) { + c = '.'; + } + + dprintf("%c", c); + } + + dprintf("\n"); } dprintf("\n");