diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-07-17 13:57:45 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-07-19 13:44:40 +0000 |
commit | 6ec7b8da05d21a3878bd21c691b41e675d74bb1c (patch) | |
tree | b87f250bc19413750b9bb9cdbf2da20ef5014820 /chromium/v8/tools/grokdump.py | |
parent | ec02ee4181c49b61fce1c8fb99292dbb8139cc90 (diff) | |
download | qtwebengine-chromium-6ec7b8da05d21a3878bd21c691b41e675d74bb1c.tar.gz |
BASELINE: Update Chromium to 60.0.3112.70
Change-Id: I9911c2280a014d4632f254857876a395d4baed2d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/v8/tools/grokdump.py')
-rwxr-xr-x | chromium/v8/tools/grokdump.py | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/chromium/v8/tools/grokdump.py b/chromium/v8/tools/grokdump.py index 4a3cc7c6f50..dd944f8ab4a 100755 --- a/chromium/v8/tools/grokdump.py +++ b/chromium/v8/tools/grokdump.py @@ -1952,9 +1952,12 @@ class InspectionPadawan(object): return None def FrameMarkerName(self, value): - if 0 < value <= len(FRAME_MARKERS): - return "Possibly %s frame marker" % FRAME_MARKERS[value-1] - return "" + # The frame marker is Smi-tagged but not Smi encoded and 0 is not a valid + # frame type. + value = (value >> 1) - 1 + if 0 <= value < len(FRAME_MARKERS): + return "Possibly %s frame marker" % FRAME_MARKERS[value] + return None def IsFrameMarker(self, slot, address): if not slot: return False @@ -1964,18 +1967,17 @@ class InspectionPadawan(object): next_address = self.reader.ReadUIntPtr(slot + self.reader.PointerSize()) return self.reader.IsExceptionStackAddress(next_address) - def FormatSmi(self, address, slot=None): + def FormatSmi(self, address): value = self.heap.SmiUntag(address) - marker = "" - if self.IsFrameMarker(slot, address): - marker = self.FrameMarkerName(value) # On 32-bit systems almost everything looks like a Smi. - if not self.reader.Is64() or value == 0: return marker - return "Smi(%d) %s" % (value, marker) + if not self.reader.Is64() or value == 0: return None + return "Smi(%d)" % value def SenseObject(self, address, slot=None): + if self.IsFrameMarker(slot, address): + return self.FrameMarkerName(address) if self.heap.IsSmi(address): - return self.FormatSmi(address, slot) + return self.FormatSmi(address) if not self.heap.IsTaggedAddress(address): return None tagged_address = address if self.IsInKnownOldSpace(tagged_address): |