Browse Source

elf_mem_dump: fix unknown address

Yuri D'Elia 2 years ago
parent
commit
f2192dc5e6
1 changed files with 6 additions and 7 deletions
  1. 6 7
      tools/elf_mem_map

+ 6 - 7
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):