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

Method TryExtractOldStackTrace

deps/v8/tools/grokdump.py:2326–2347  ·  view source on GitHub ↗
(self, slot, start, end, print_message)

Source from the content-addressed store, hash-verified

2324 return stack_start
2325
2326 def TryExtractOldStackTrace(self, slot, start, end, print_message):
2327 ptr_size = self.reader.MachinePointerSize()
2328 assert self.reader.ReadUIntPtr(slot) & 0xFFFFFFFF == STACK_TRACE_MARKER
2329 header_size = 10
2330 # Look for the end marker after the fields and the message buffer.
2331 end_search = start + (32 * 1024) + (header_size * ptr_size)
2332 end_slot = self.reader.FindPtr(STACK_TRACE_OLD_END_MARKER, end_search,
2333 end_search + ptr_size * 512)
2334 if not end_slot:
2335 return start
2336 print("Stack Message (start=%s):" % self.heap.FormatIntPtr(slot))
2337 for name in ("isolate", "ptr1", "ptr2", "ptr3", "ptr4", "ptr5", "ptr6",
2338 "codeObject1", "codeObject2", "codeObject3", "codeObject4"):
2339 value = self.reader.ReadUIntPtr(slot)
2340 print(" %s: %s" % (name.rjust(14), self.heap.FormatIntPtr(value)))
2341 slot += ptr_size
2342 print(" message start: %s" % self.heap.FormatIntPtr(slot))
2343 stack_start = end_slot + ptr_size
2344 print(" stack_start: %s" % self.heap.FormatIntPtr(stack_start))
2345 (message_start, message) = self.FindFirstAsciiString(slot)
2346 self.FormatStackTrace(message, print_message)
2347 return stack_start
2348
2349 def TryExtractErrorMessage(self, slot, start, end, print_message):
2350 ptr_size = self.reader.MachinePointerSize()

Callers 1

TryExtractStackTraceMethod · 0.95

Calls 7

FindFirstAsciiStringMethod · 0.95
FormatStackTraceMethod · 0.95
ReadUIntPtrMethod · 0.80
FindPtrMethod · 0.80
printFunction · 0.70
MachinePointerSizeMethod · 0.45
FormatIntPtrMethod · 0.45

Tested by

no test coverage detected