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

Method PrintStackTraceMessage

deps/v8/tools/grokdump.py:2261–2288  ·  view source on GitHub ↗

Try to print a possible message from PushStackTraceAndDie. Returns the first address where the normal stack starts again.

(self, start=None, print_message=True)

Source from the content-addressed store, hash-verified

2259 return (None,None)
2260
2261 def PrintStackTraceMessage(self, start=None, print_message=True):
2262 """
2263 Try to print a possible message from PushStackTraceAndDie.
2264 Returns the first address where the normal stack starts again.
2265 """
2266 # Only look at the first 1k words on the stack
2267 ptr_size = self.reader.MachinePointerSize()
2268 if start is None:
2269 start = self.reader.ExceptionSP()
2270 if not self.reader.IsValidAddress(start):
2271 return start
2272 end = start + ptr_size * 1024 * 4
2273 magic1 = None
2274 for slot in range(start, end, ptr_size):
2275 if not self.reader.IsValidAddress(slot + ptr_size):
2276 break
2277 magic1 = self.reader.ReadUIntPtr(slot)
2278 magic2 = self.reader.ReadUIntPtr(slot + ptr_size)
2279 pair = (magic1 & 0xFFFFFFFF, magic2 & 0xFFFFFFFF)
2280 if pair in MAGIC_MARKER_PAIRS:
2281 return self.TryExtractOldStyleStackTrace(slot, start, end,
2282 print_message)
2283 if pair[0] == STACK_TRACE_MARKER:
2284 return self.TryExtractStackTrace(slot, start, end, print_message)
2285 elif pair[0] == ERROR_MESSAGE_MARKER:
2286 return self.TryExtractErrorMessage(slot, start, end, print_message)
2287 # Simple fallback in case not stack trace object was found
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()

Callers 2

_AnalyzeMinidumpFunction · 0.95

Calls 8

TryExtractStackTraceMethod · 0.95
ExceptionSPMethod · 0.80
IsValidAddressMethod · 0.80
ReadUIntPtrMethod · 0.80
rangeFunction · 0.50
MachinePointerSizeMethod · 0.45

Tested by

no test coverage detected