Reviewers: Hannes Payer,
Description:
grokdump.py: work around int size limits on xrange
R=hpa...@chromium.org
BUG=
Please review this at https://codereview.chromium.org/1158933007/
Base URL: https://chromium.googlesource.com/v8/v8.git@master
Affected files (+23, -15 lines):
M tools/grokdump.py
Index: tools/grokdump.py
diff --git a/tools/grokdump.py b/tools/grokdump.py
index
26e53c785413bd0b0c1a860f240c132d724e804b..d3f56f547cb5eba361cf5f302f5997a0469a727b
100755
--- a/tools/grokdump.py
+++ b/tools/grokdump.py
@@ -135,10 +135,11 @@ def FullDump(reader, heap):
if is_ascii is not False:
# Output in the same format as the Unix hd command
addr = start
- for slot in xrange(location, location + size, 16):
+ for i in xrange(0, size, 16):
+ slot = i + location
hex_line = ""
asc_line = ""
- for i in xrange(0, 16):
+ for i in xrange(16):
if slot + i < location + size:
byte = ctypes.c_uint8.from_buffer(reader.minidump, slot +
i).value
if byte >= 0x20 and byte < 0x7f:
@@ -158,9 +159,9 @@ def FullDump(reader, heap):
if is_executable is not True and is_ascii is not True:
print "%s - %s" % (reader.FormatIntPtr(start),
reader.FormatIntPtr(start + size))
- for slot in xrange(start,
- start + size,
- reader.PointerSize()):
+ print start + size + 1;
+ for i in xrange(0, size, reader.PointerSize()):
+ slot = start + i
maybe_address = reader.ReadUIntPtr(slot)
heap_object = heap.FindObject(maybe_address)
print "%s: %s" % (reader.FormatIntPtr(slot),
@@ -660,7 +661,8 @@ class MinidumpReader(object):
def IsProbableASCIIRegion(self, location, length):
ascii_bytes = 0
non_ascii_bytes = 0
- for loc in xrange(location, location + length):
+ for i in xrange(length):
+ loc = location + i
byte = ctypes.c_uint8.from_buffer(self.minidump, loc).value
if byte >= 0x7f:
non_ascii_bytes += 1
@@ -681,7 +683,8 @@ class MinidumpReader(object):
def IsProbableExecutableRegion(self, location, length):
opcode_bytes = 0
sixty_four = self.arch == MD_CPU_ARCHITECTURE_AMD64
- for loc in xrange(location, location + length):
+ for i in xrange(length):
+ loc = location + i
byte = ctypes.c_uint8.from_buffer(self.minidump, loc).value
if (byte == 0x8b or # mov
byte == 0x89 or # mov reg-reg
@@ -729,7 +732,8 @@ class MinidumpReader(object):
def FindWord(self, word, alignment=0):
def search_inside_region(reader, start, size, location):
location = (location + alignment) & ~alignment
- for loc in xrange(location, location + size - self.PointerSize()):
+ for i in xrange(size - self.PointerSize()):
+ loc = location + i
if reader._ReadWord(loc) == word:
slot = start + (loc - location)
print "%s: %s" % (reader.FormatIntPtr(slot),
@@ -740,7 +744,8 @@ class MinidumpReader(object):
aligned_res = []
unaligned_res = []
def search_inside_region(reader, start, size, location):
- for loc in xrange(location, location + size - self.PointerSize()):
+ for i in xrange(size - self.PointerSize()):
+ loc = location + i
if reader._ReadWord(loc) == word:
slot = start + (loc - location)
if slot % self.PointerSize() == 0:
@@ -2338,7 +2343,8 @@ class InspectionWebFormatter(object):
f.write('<div class="code">')
f.write("<table class=\"codedump\">\n")
- for slot in xrange(start_address, end_address, size):
+ for j in xrange(0, end_address - start_address, size):
+ slot = start_address + j
heap_object = ""
maybe_address = None
end_region = region[0] + region[1]
@@ -2413,7 +2419,8 @@ class InspectionWebFormatter(object):
start = self.align_down(start_address, line_width)
- for address in xrange(start, end_address):
+ for i in xrange(end_address - start):
+ address = start + i
if address % 64 == 0:
if address != start:
f.write("<br>")
@@ -2482,7 +2489,7 @@ class InspectionWebFormatter(object):
(start_address, end_address, highlight_address, expand))
f.write('<div class="code">')
f.write("<table class=\"codedump\">\n");
- for i in xrange(0, len(lines)):
+ for i in xrange(len(lines)):
line = lines[i]
next_address = count
if i + 1 < len(lines):
@@ -2838,9 +2845,10 @@ class InspectionShell(cmd.Cmd):
num = int(args[1], 16) if len(args) > 1 else 0x10
if (start & self.heap.ObjectAlignmentMask()) != 0:
print "Warning: Dumping un-aligned memory, is this what you had in
mind?"
- for slot in xrange(start,
- start + self.reader.PointerSize() * num,
- self.reader.PointerSize()):
+ for i in xrange(0,
+ self.reader.PointerSize() * num,
+ self.reader.PointerSize()):
+ slot = start + i
if not self.reader.IsValidAddress(slot):
print "Address is not contained within the minidump!"
return
--
--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.