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

Class InspectionWebFormatter

deps/v8/tools/grokdump.py:2879–3605  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2877
2878
2879class InspectionWebFormatter(object):
2880 CONTEXT_FULL = 0
2881 CONTEXT_SHORT = 1
2882
2883 def __init__(self, switches, minidump_name, http_server):
2884 self.dumpfilename = os.path.split(minidump_name)[1]
2885 self.encfilename = urllib.parse.urlencode({'dump': self.dumpfilename})
2886 self.reader = MinidumpReader(switches, minidump_name)
2887 self.server = http_server
2888
2889 # Set up the heap
2890 exception_thread = self.reader.thread_map[self.reader.exception.thread_id]
2891 stack_top = self.reader.ExceptionSP()
2892 stack_bottom = exception_thread.stack.start + \
2893 exception_thread.stack.memory.data_size
2894 stack_map = {self.reader.ExceptionIP(): -1}
2895 for slot in range(stack_top, stack_bottom,
2896 self.reader.MachinePointerSize()):
2897 maybe_address = self.reader.ReadUIntPtr(slot)
2898 if not maybe_address in stack_map:
2899 stack_map[maybe_address] = slot
2900 self.heap = V8Heap(self.reader, stack_map)
2901
2902 self.padawan = InspectionPadawan(self.reader, self.heap)
2903 self.comments = InspectionInfo(minidump_name, self.reader)
2904 self.padawan.known_first_old_page = (
2905 self.comments.get_page_address("oldpage"))
2906 self.padawan.known_first_map_page = (
2907 self.comments.get_page_address("mappage"))
2908
2909 def set_comment(self, straddress, comment):
2910 try:
2911 address = int(straddress, 0)
2912 self.comments.set_comment(address, comment)
2913 except ValueError:
2914 print("Invalid address")
2915
2916 def set_page_address(self, kind, straddress):
2917 try:
2918 address = int(straddress, 0)
2919 if kind == "oldpage":
2920 self.padawan.known_first_old_page = address
2921 elif kind == "mappage":
2922 self.padawan.known_first_map_page = address
2923 self.comments.save_page_address(kind, address)
2924 except ValueError:
2925 print("Invalid address")
2926
2927 def td_from_address(self, f, address):
2928 f.write("<td %s>" % self.comments.get_style_class_string(address))
2929
2930 def format_address(self, maybeaddress, straddress = None):
2931 if maybeaddress is None:
2932 return "not in dump"
2933 else:
2934 if straddress is None:
2935 straddress = "0x" + self.reader.FormatIntPtr(maybeaddress)
2936 style_class = ""

Callers 2

__init__Method · 0.85
get_dump_formatterMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected