(self, slot, start, end, print_message)
| 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() |
no test coverage detected