MCPcopy Index your code
hub / github.com/nodejs/node / InspectionInfo

Class InspectionInfo

deps/v8/tools/grokdump.py:2011–2080  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2009
2010
2011class InspectionInfo(object):
2012 def __init__(self, minidump_name, reader):
2013 self.comment_file = minidump_name + ".comments"
2014 self.address_comments = {}
2015 self.page_address = {}
2016 if os.path.exists(self.comment_file):
2017 with open(self.comment_file, "r") as f:
2018 lines = f.readlines()
2019 f.close()
2020
2021 for l in lines:
2022 m = COMMENT_RE.match(l)
2023 if m:
2024 self.address_comments[int(m.group(1), 0)] = m.group(2)
2025 m = PAGEADDRESS_RE.match(l)
2026 if m:
2027 self.page_address[m.group(1)] = int(m.group(2), 0)
2028 self.reader = reader
2029 self.styles = {}
2030 self.color_addresses()
2031 return
2032
2033 def get_page_address(self, page_kind):
2034 return self.page_address.get(page_kind, 0)
2035
2036 def save_page_address(self, page_kind, address):
2037 with open(self.comment_file, "a") as f:
2038 f.write("P %s 0x%x\n" % (page_kind, address))
2039 f.close()
2040
2041 def color_addresses(self):
2042 # Color all stack addresses.
2043 exception_thread = self.reader.thread_map[self.reader.exception.thread_id]
2044 stack_top = self.reader.ExceptionSP()
2045 stack_bottom = exception_thread.stack.start + \
2046 exception_thread.stack.memory.data_size
2047 frame_pointer = self.reader.ExceptionFP()
2048 self.styles[frame_pointer] = "frame"
2049 for slot in range(stack_top, stack_bottom,
2050 self.reader.MachinePointerSize()):
2051 # stack address
2052 self.styles[slot] = "sa"
2053 for slot in range(stack_top, stack_bottom,
2054 self.reader.MachinePointerSize()):
2055 maybe_address = self.reader.ReadUIntPtr(slot)
2056 # stack value
2057 self.styles[maybe_address] = "sv"
2058 if slot == frame_pointer:
2059 self.styles[slot] = "frame"
2060 frame_pointer = maybe_address
2061 self.styles[self.reader.ExceptionIP()] = "pc"
2062
2063 def get_style_class(self, address):
2064 return self.styles.get(address, None)
2065
2066 def get_style_class_string(self, address):
2067 style = self.get_style_class(address)
2068 if style is not None:

Callers 1

__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…