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

Method TryExtractStackTrace

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

Source from the content-addressed store, hash-verified

2288 return self.TryExtractOldStyleStackTrace(0, start, end, print_message)
2289
2290 def TryExtractStackTrace(self, slot, start, end, print_message):
2291 ptr_size = self.reader.MachinePointerSize()
2292 assert self.reader.ReadUIntPtr(slot) & 0xFFFFFFFF == STACK_TRACE_MARKER
2293 # Look for the mid marker after the start slot.
2294 mid_slot = self.reader.FindPtr(STACK_TRACE_MID_MARKER, start + ptr_size,
2295 start + ptr_size * 100)
2296 if not mid_slot:
2297 return self.TryExtractOldStackTrace(slot, start, end, print_message)
2298 end_search = mid_slot + (32 * 1024) + (4 * ptr_size)
2299 end_slot = self.reader.FindPtr(STACK_TRACE_END_MARKER, end_search,
2300 end_search + ptr_size * 512)
2301 if not end_slot:
2302 return start
2303
2304 print("Stack Message (start=%s):" % self.heap.FormatIntPtr(slot))
2305 value = self.reader.ReadUIntPtr(slot)
2306 print(" %s: %s" % ("isolate".rjust(14), self.heap.FormatIntPtr(value)))
2307 slot += ptr_size
2308 i = 0
2309 while slot < mid_slot:
2310 value = self.reader.ReadUIntPtr(slot)
2311 print(" %s: %s" % ("ptr%d" % i, self.heap.FormatIntPtr(value)))
2312 slot += ptr_size
2313 i += 1
2314 slot = mid_slot + ptr_size
2315 for i in range(4):
2316 value = self.reader.ReadUIntPtr(slot)
2317 print(" %s: %s" % ("codeObject%d" % i, self.heap.FormatIntPtr(value)))
2318 slot += ptr_size
2319 print(" message start: %s" % self.heap.FormatIntPtr(slot))
2320 stack_start = end_slot + ptr_size
2321 print(" stack_start: %s" % self.heap.FormatIntPtr(stack_start))
2322 (message_start, message) = self.FindFirstAsciiString(slot)
2323 self.FormatStackTrace(message, print_message)
2324 return stack_start
2325
2326 def TryExtractOldStackTrace(self, slot, start, end, print_message):
2327 ptr_size = self.reader.MachinePointerSize()

Callers 1

Calls 9

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

Tested by

no test coverage detected