Commit 11f8bb47 authored by Pavel Emelyanov's avatar Pavel Emelyanov

show: Show *-s for zero sequences in hexdump output

Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 12602aee
...@@ -144,10 +144,25 @@ static int nice_width_for(unsigned long addr) ...@@ -144,10 +144,25 @@ static int nice_width_for(unsigned long addr)
void print_data(unsigned long addr, unsigned char *data, size_t size) void print_data(unsigned long addr, unsigned char *data, size_t size)
{ {
int i, j, addr_len; int i, j, addr_len;
unsigned zero_line = 0;
addr_len = nice_width_for(addr + size); addr_len = nice_width_for(addr + size);
for (i = 0; i < size; i += 16) { for (i = 0; i < size; i += 16) {
if (*(u64 *)(data + i) == 0 && *(u64 *)(data + i + 8) == 0) {
if (zero_line == 0)
zero_line = 1;
else {
if (zero_line == 1) {
pr_msg("*\n");
zero_line = 2;
}
continue;
}
} else
zero_line = 0;
pr_msg("%#0*lx: ", addr_len, addr + i); pr_msg("%#0*lx: ", addr_len, addr + i);
for (j = 0; j < 8; j++) for (j = 0; j < 8; j++)
pr_msg("%02x ", data[i + j]); pr_msg("%02x ", data[i + j]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment