diff --git a/tools/elf_mem_map b/tools/elf_mem_map index 69f08428..ddfd5706 100755 --- a/tools/elf_mem_map +++ b/tools/elf_mem_map @@ -105,8 +105,7 @@ def decode_dump(path): def annotate_refs(grefs, addr, data, width=45, gaps=True): - last_pos = None - + last_end = None for name, loc, size in grefs: if loc < addr: continue @@ -125,16 +124,16 @@ def annotate_refs(grefs, addr, data, width=45, gaps=True): # attempt to decode as floats buf_repr += ' F:' + '{:10.3f}'.format(unpack('f', buf)[0]) - if gaps and last_pos is not None and last_pos < pos: + if gaps and last_end is not None and last_end < pos: # decode gaps - gap_size = pos - last_pos - gap_buf = data[last_pos:pos] - print('{:04x} {} {:4} R:{}'.format(last_pos, "*UNKNOWN*".ljust(width), + gap_size = pos - last_end + gap_buf = data[last_end:pos] + print('{:04x} {} {:4} R:{}'.format(addr+last_end, "*UNKNOWN*".ljust(width), gap_size, gap_buf.hex())) print('{:04x} {} {:4}{} R:{}'.format(loc, name.ljust(width), size, buf_repr, buf.hex())) - last_pos = end_pos + last_end = end_pos def print_map(grefs):