Index: tools/grokdump.py |
diff --git a/tools/grokdump.py b/tools/grokdump.py |
index 317a7d6a911fe4dd0bd0014af19bdde1585c3770..d09c042204cd6d8c6a1626c49737c392d11d6dbc 100755 |
--- a/tools/grokdump.py |
+++ b/tools/grokdump.py |
@@ -1029,7 +1029,8 @@ class Map(HeapObject): |
class String(HeapObject): |
def LengthOffset(self): |
- return self.heap.PointerSize() |
+ # First word after the map is the hash, the second is the length. |
+ return self.heap.PointerSize() * 2 |
def __init__(self, heap, map, address): |
HeapObject.__init__(self, heap, map, address) |
@@ -1215,18 +1216,18 @@ class DescriptorArray(object): |
def Deleted(self, value): |
return self.Decode(6, 1, value) == 1 |
- def Storage(self, value): |
- return self.Decode(7, 11, value) |
+ def FieldIndex(self, value): |
+ return self.Decode(20, 11, value) |
def Pointer(self, value): |
- return self.Decode(18, 11, value) |
+ return self.Decode(6, 11, value) |
def Details(self, di, value): |
return ( |
di, |
self.Type(value), |
self.Attributes(value), |
- self.Storage(value), |
+ self.FieldIndex(value), |
self.Pointer(value) |
) |
@@ -1242,7 +1243,7 @@ class DescriptorArray(object): |
i = 2 + di * 3 |
p.Print("0x%x" % (array.address + array.MemberOffset(i))) |
p.Print("[%i] name: %s" % (di, array.Get(i + 0))) |
- p.Print("[%i] details: %s %s enum %i pointer %i" % \ |
+ p.Print("[%i] details: %s %s field-index %i pointer %i" % \ |
self.Details(di, array.Get(i + 1))) |
p.Print("[%i] value: %s" % (di, array.Get(i + 2))) |