v8/tools/v8heapconst.py
Benedikt Meurer 11b6f1760e [stack-traces] Remove StackFrameInfo.
For a long time, V8 had two distinct ways to capture and store a stack
trace, one where we'd just collect and symbolize the information for the
v8::StackTrace API (script id, name, line and colum information mostly),
and one where V8 would also memorize the closures, receivers, and
optionally the parameters of the stack frame, which we use for
Error.stack and the non-standard CallSite APIs. Those two were often out
of sync and suffered from various different issues. Eventually they were
refactored into a single captureStackTrace() bottleneck that would
produce a FrameArray.

This CL is a logical continuation of the refactorings. It repairs a
regression where we'd compute the method name (as part of the
cached StackFrameInfo) even if we don't need them (as is the case for
the inspector and any other use of the v8::StackTrace API).

Everytime a method was invoked on StackTraceFrame, it'd call into
StackTraceFrame::GetInfo(), which would lazily setup the StackFrameInfo
like this:

  1. Create a FrameArrayIterator and point it to the FrameArray at the
     index stored in the StackTraceFrame.
  2. Invoke FrameArrayIterator::Frame(), which copies the information
     from the FrameArray into a temporary JSStackFrame, AsmJsStackFrame
     or WasmStackFrame C++ object, and use the StackFrameBase virtual
     methods to transfer all information to a newly created
     StackFrameInfo object.
  3. Kill the link to the FrameArray and put a link to the
     StackFrameInfo object into the StackTraceFrame.

This caching turned out to be extremely costly, since beyond other
things, it'd always invoke JSStackFrame::GetMethodName(), which is
extremely costly (the execution time is linear in the number of
properties on the receiver and it's prototype chain). The cost was so
high that several work-arounds had been added, which would avoid
triggering the eager construction of the StackFrameInfo object (i.e.
https://crrev.com/c/2080663, https://crrev.com/c/2550504 or
https://crrev.com/c/2261736, but also https://crrev.com/c/1688927).

This CL removes the StackFrameInfo caching completely, since neither the
inspector nor Error.stack benefit from the caching at all. It's only the
first part in a series of refactorings that will significantly reduce
the complexity and overhead of the stack trace collection.

Doc: https://bit.ly/2wkbuIy
Bug: chromium:1057211, chromium:1077657, chromium:1069425, v8:8742
Bug: chromium:1127391, chromium:1098530, chromium:981541
Change-Id: I8edb8ff48b620eb3043ae51ab4ea27146ef0a5a2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2689185
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Simon Zünd <szuend@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72647}
2021-02-11 10:10:22 +00:00

527 lines
23 KiB
Python

# Copyright 2019 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can
# be found in the LICENSE file.
# This file is automatically generated by mkgrokdump and should not
# be modified manually.
# List of known V8 instance types.
INSTANCE_TYPES = {
0: "INTERNALIZED_STRING_TYPE",
2: "EXTERNAL_INTERNALIZED_STRING_TYPE",
8: "ONE_BYTE_INTERNALIZED_STRING_TYPE",
10: "EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE",
18: "UNCACHED_EXTERNAL_INTERNALIZED_STRING_TYPE",
26: "UNCACHED_EXTERNAL_ONE_BYTE_INTERNALIZED_STRING_TYPE",
32: "STRING_TYPE",
33: "CONS_STRING_TYPE",
34: "EXTERNAL_STRING_TYPE",
35: "SLICED_STRING_TYPE",
37: "THIN_STRING_TYPE",
40: "ONE_BYTE_STRING_TYPE",
41: "CONS_ONE_BYTE_STRING_TYPE",
42: "EXTERNAL_ONE_BYTE_STRING_TYPE",
43: "SLICED_ONE_BYTE_STRING_TYPE",
45: "THIN_ONE_BYTE_STRING_TYPE",
50: "UNCACHED_EXTERNAL_STRING_TYPE",
58: "UNCACHED_EXTERNAL_ONE_BYTE_STRING_TYPE",
64: "SYMBOL_TYPE",
65: "BIG_INT_BASE_TYPE",
66: "HEAP_NUMBER_TYPE",
67: "ODDBALL_TYPE",
68: "ABSTRACT_INTERNAL_CLASS_SUBCLASS1_TYPE",
69: "ABSTRACT_INTERNAL_CLASS_SUBCLASS2_TYPE",
70: "FOREIGN_TYPE",
71: "WASM_TYPE_INFO_TYPE",
72: "PROMISE_FULFILL_REACTION_JOB_TASK_TYPE",
73: "PROMISE_REJECT_REACTION_JOB_TASK_TYPE",
74: "CALLABLE_TASK_TYPE",
75: "CALLBACK_TASK_TYPE",
76: "PROMISE_RESOLVE_THENABLE_JOB_TASK_TYPE",
77: "LOAD_HANDLER_TYPE",
78: "STORE_HANDLER_TYPE",
79: "FUNCTION_TEMPLATE_INFO_TYPE",
80: "OBJECT_TEMPLATE_INFO_TYPE",
81: "ACCESS_CHECK_INFO_TYPE",
82: "ACCESSOR_INFO_TYPE",
83: "ACCESSOR_PAIR_TYPE",
84: "ALIASED_ARGUMENTS_ENTRY_TYPE",
85: "ALLOCATION_MEMENTO_TYPE",
86: "ALLOCATION_SITE_TYPE",
87: "ARRAY_BOILERPLATE_DESCRIPTION_TYPE",
88: "ASM_WASM_DATA_TYPE",
89: "ASYNC_GENERATOR_REQUEST_TYPE",
90: "BREAK_POINT_TYPE",
91: "BREAK_POINT_INFO_TYPE",
92: "CACHED_TEMPLATE_OBJECT_TYPE",
93: "CALL_HANDLER_INFO_TYPE",
94: "CLASS_POSITIONS_TYPE",
95: "DEBUG_INFO_TYPE",
96: "ENUM_CACHE_TYPE",
97: "FEEDBACK_CELL_TYPE",
98: "FUNCTION_TEMPLATE_RARE_DATA_TYPE",
99: "INTERCEPTOR_INFO_TYPE",
100: "INTERPRETER_DATA_TYPE",
101: "MODULE_REQUEST_TYPE",
102: "PROMISE_CAPABILITY_TYPE",
103: "PROMISE_REACTION_TYPE",
104: "PROPERTY_DESCRIPTOR_OBJECT_TYPE",
105: "PROTOTYPE_INFO_TYPE",
106: "REG_EXP_BOILERPLATE_DESCRIPTION_TYPE",
107: "SCRIPT_TYPE",
108: "SOURCE_TEXT_MODULE_INFO_ENTRY_TYPE",
109: "STACK_TRACE_FRAME_TYPE",
110: "TEMPLATE_OBJECT_DESCRIPTION_TYPE",
111: "TUPLE2_TYPE",
112: "WASM_EXCEPTION_TAG_TYPE",
113: "WASM_EXPORTED_FUNCTION_DATA_TYPE",
114: "WASM_INDIRECT_FUNCTION_TABLE_TYPE",
115: "WASM_JS_FUNCTION_DATA_TYPE",
116: "FIXED_ARRAY_TYPE",
117: "HASH_TABLE_TYPE",
118: "EPHEMERON_HASH_TABLE_TYPE",
119: "GLOBAL_DICTIONARY_TYPE",
120: "NAME_DICTIONARY_TYPE",
121: "NUMBER_DICTIONARY_TYPE",
122: "ORDERED_HASH_MAP_TYPE",
123: "ORDERED_HASH_SET_TYPE",
124: "ORDERED_NAME_DICTIONARY_TYPE",
125: "SIMPLE_NUMBER_DICTIONARY_TYPE",
126: "CLOSURE_FEEDBACK_CELL_ARRAY_TYPE",
127: "OBJECT_BOILERPLATE_DESCRIPTION_TYPE",
128: "SCRIPT_CONTEXT_TABLE_TYPE",
129: "BYTE_ARRAY_TYPE",
130: "BYTECODE_ARRAY_TYPE",
131: "FIXED_DOUBLE_ARRAY_TYPE",
132: "INTERNAL_CLASS_WITH_SMI_ELEMENTS_TYPE",
133: "SCOPE_INFO_TYPE",
134: "SLOPPY_ARGUMENTS_ELEMENTS_TYPE",
135: "AWAIT_CONTEXT_TYPE",
136: "BLOCK_CONTEXT_TYPE",
137: "CATCH_CONTEXT_TYPE",
138: "DEBUG_EVALUATE_CONTEXT_TYPE",
139: "EVAL_CONTEXT_TYPE",
140: "FUNCTION_CONTEXT_TYPE",
141: "MODULE_CONTEXT_TYPE",
142: "NATIVE_CONTEXT_TYPE",
143: "SCRIPT_CONTEXT_TYPE",
144: "WITH_CONTEXT_TYPE",
145: "EXPORTED_SUB_CLASS_BASE_TYPE",
146: "EXPORTED_SUB_CLASS_TYPE",
147: "EXPORTED_SUB_CLASS2_TYPE",
148: "SMALL_ORDERED_HASH_MAP_TYPE",
149: "SMALL_ORDERED_HASH_SET_TYPE",
150: "SMALL_ORDERED_NAME_DICTIONARY_TYPE",
151: "DESCRIPTOR_ARRAY_TYPE",
152: "STRONG_DESCRIPTOR_ARRAY_TYPE",
153: "SOURCE_TEXT_MODULE_TYPE",
154: "SYNTHETIC_MODULE_TYPE",
155: "UNCOMPILED_DATA_WITH_PREPARSE_DATA_TYPE",
156: "UNCOMPILED_DATA_WITHOUT_PREPARSE_DATA_TYPE",
157: "WEAK_FIXED_ARRAY_TYPE",
158: "TRANSITION_ARRAY_TYPE",
159: "CELL_TYPE",
160: "CODE_TYPE",
161: "CODE_DATA_CONTAINER_TYPE",
162: "COVERAGE_INFO_TYPE",
163: "EMBEDDER_DATA_ARRAY_TYPE",
164: "FEEDBACK_METADATA_TYPE",
165: "FEEDBACK_VECTOR_TYPE",
166: "FILLER_TYPE",
167: "FREE_SPACE_TYPE",
168: "INTERNAL_CLASS_TYPE",
169: "INTERNAL_CLASS_WITH_STRUCT_ELEMENTS_TYPE",
170: "MAP_TYPE",
171: "ON_HEAP_BASIC_BLOCK_PROFILER_DATA_TYPE",
172: "PREPARSE_DATA_TYPE",
173: "PROPERTY_ARRAY_TYPE",
174: "PROPERTY_CELL_TYPE",
175: "SHARED_FUNCTION_INFO_TYPE",
176: "SMI_BOX_TYPE",
177: "SMI_PAIR_TYPE",
178: "SORT_STATE_TYPE",
179: "SWISS_NAME_DICTIONARY_TYPE",
180: "WASM_ARRAY_TYPE",
181: "WASM_CAPI_FUNCTION_DATA_TYPE",
182: "WASM_STRUCT_TYPE",
183: "WEAK_ARRAY_LIST_TYPE",
184: "WEAK_CELL_TYPE",
185: "JS_PROXY_TYPE",
1057: "JS_OBJECT_TYPE",
186: "JS_GLOBAL_OBJECT_TYPE",
187: "JS_GLOBAL_PROXY_TYPE",
188: "JS_MODULE_NAMESPACE_TYPE",
1040: "JS_SPECIAL_API_OBJECT_TYPE",
1041: "JS_PRIMITIVE_WRAPPER_TYPE",
1042: "JS_ARRAY_ITERATOR_PROTOTYPE_TYPE",
1043: "JS_ITERATOR_PROTOTYPE_TYPE",
1044: "JS_MAP_ITERATOR_PROTOTYPE_TYPE",
1045: "JS_OBJECT_PROTOTYPE_TYPE",
1046: "JS_PROMISE_PROTOTYPE_TYPE",
1047: "JS_REG_EXP_PROTOTYPE_TYPE",
1048: "JS_SET_ITERATOR_PROTOTYPE_TYPE",
1049: "JS_SET_PROTOTYPE_TYPE",
1050: "JS_STRING_ITERATOR_PROTOTYPE_TYPE",
1051: "JS_TYPED_ARRAY_PROTOTYPE_TYPE",
1052: "JS_GENERATOR_OBJECT_TYPE",
1053: "JS_ASYNC_FUNCTION_OBJECT_TYPE",
1054: "JS_ASYNC_GENERATOR_OBJECT_TYPE",
1055: "JS_ARGUMENTS_OBJECT_TYPE",
1056: "JS_API_OBJECT_TYPE",
1058: "JS_BOUND_FUNCTION_TYPE",
1059: "JS_FUNCTION_TYPE",
1060: "BIGINT64_TYPED_ARRAY_CONSTRUCTOR_TYPE",
1061: "BIGUINT64_TYPED_ARRAY_CONSTRUCTOR_TYPE",
1062: "FLOAT32_TYPED_ARRAY_CONSTRUCTOR_TYPE",
1063: "FLOAT64_TYPED_ARRAY_CONSTRUCTOR_TYPE",
1064: "INT16_TYPED_ARRAY_CONSTRUCTOR_TYPE",
1065: "INT32_TYPED_ARRAY_CONSTRUCTOR_TYPE",
1066: "INT8_TYPED_ARRAY_CONSTRUCTOR_TYPE",
1067: "UINT16_TYPED_ARRAY_CONSTRUCTOR_TYPE",
1068: "UINT32_TYPED_ARRAY_CONSTRUCTOR_TYPE",
1069: "UINT8_CLAMPED_TYPED_ARRAY_CONSTRUCTOR_TYPE",
1070: "UINT8_TYPED_ARRAY_CONSTRUCTOR_TYPE",
1071: "JS_ARRAY_CONSTRUCTOR_TYPE",
1072: "JS_PROMISE_CONSTRUCTOR_TYPE",
1073: "JS_REG_EXP_CONSTRUCTOR_TYPE",
1074: "JS_MAP_KEY_ITERATOR_TYPE",
1075: "JS_MAP_KEY_VALUE_ITERATOR_TYPE",
1076: "JS_MAP_VALUE_ITERATOR_TYPE",
1077: "JS_SET_KEY_VALUE_ITERATOR_TYPE",
1078: "JS_SET_VALUE_ITERATOR_TYPE",
1079: "JS_DATA_VIEW_TYPE",
1080: "JS_TYPED_ARRAY_TYPE",
1081: "JS_MAP_TYPE",
1082: "JS_SET_TYPE",
1083: "JS_WEAK_MAP_TYPE",
1084: "JS_WEAK_SET_TYPE",
1085: "JS_ARRAY_TYPE",
1086: "JS_ARRAY_BUFFER_TYPE",
1087: "JS_ARRAY_ITERATOR_TYPE",
1088: "JS_ASYNC_FROM_SYNC_ITERATOR_TYPE",
1089: "JS_COLLATOR_TYPE",
1090: "JS_CONTEXT_EXTENSION_OBJECT_TYPE",
1091: "JS_DATE_TYPE",
1092: "JS_DATE_TIME_FORMAT_TYPE",
1093: "JS_DISPLAY_NAMES_TYPE",
1094: "JS_ERROR_TYPE",
1095: "JS_FINALIZATION_REGISTRY_TYPE",
1096: "JS_LIST_FORMAT_TYPE",
1097: "JS_LOCALE_TYPE",
1098: "JS_MESSAGE_OBJECT_TYPE",
1099: "JS_NUMBER_FORMAT_TYPE",
1100: "JS_PLURAL_RULES_TYPE",
1101: "JS_PROMISE_TYPE",
1102: "JS_REG_EXP_TYPE",
1103: "JS_REG_EXP_STRING_ITERATOR_TYPE",
1104: "JS_RELATIVE_TIME_FORMAT_TYPE",
1105: "JS_SEGMENT_ITERATOR_TYPE",
1106: "JS_SEGMENTER_TYPE",
1107: "JS_SEGMENTS_TYPE",
1108: "JS_STRING_ITERATOR_TYPE",
1109: "JS_V8_BREAK_ITERATOR_TYPE",
1110: "JS_WEAK_REF_TYPE",
1111: "WASM_EXCEPTION_OBJECT_TYPE",
1112: "WASM_GLOBAL_OBJECT_TYPE",
1113: "WASM_INSTANCE_OBJECT_TYPE",
1114: "WASM_MEMORY_OBJECT_TYPE",
1115: "WASM_MODULE_OBJECT_TYPE",
1116: "WASM_TABLE_OBJECT_TYPE",
1117: "WASM_VALUE_OBJECT_TYPE",
}
# List of known V8 maps.
KNOWN_MAPS = {
("read_only_space", 0x02119): (170, "MetaMap"),
("read_only_space", 0x02141): (67, "NullMap"),
("read_only_space", 0x02169): (152, "StrongDescriptorArrayMap"),
("read_only_space", 0x02191): (157, "WeakFixedArrayMap"),
("read_only_space", 0x021d1): (96, "EnumCacheMap"),
("read_only_space", 0x02205): (116, "FixedArrayMap"),
("read_only_space", 0x02251): (8, "OneByteInternalizedStringMap"),
("read_only_space", 0x0229d): (167, "FreeSpaceMap"),
("read_only_space", 0x022c5): (166, "OnePointerFillerMap"),
("read_only_space", 0x022ed): (166, "TwoPointerFillerMap"),
("read_only_space", 0x02315): (67, "UninitializedMap"),
("read_only_space", 0x0238d): (67, "UndefinedMap"),
("read_only_space", 0x023d1): (66, "HeapNumberMap"),
("read_only_space", 0x02405): (67, "TheHoleMap"),
("read_only_space", 0x02465): (67, "BooleanMap"),
("read_only_space", 0x02509): (129, "ByteArrayMap"),
("read_only_space", 0x02531): (116, "FixedCOWArrayMap"),
("read_only_space", 0x02559): (117, "HashTableMap"),
("read_only_space", 0x02581): (64, "SymbolMap"),
("read_only_space", 0x025a9): (40, "OneByteStringMap"),
("read_only_space", 0x025d1): (133, "ScopeInfoMap"),
("read_only_space", 0x025f9): (175, "SharedFunctionInfoMap"),
("read_only_space", 0x02621): (160, "CodeMap"),
("read_only_space", 0x02649): (159, "CellMap"),
("read_only_space", 0x02671): (174, "GlobalPropertyCellMap"),
("read_only_space", 0x02699): (70, "ForeignMap"),
("read_only_space", 0x026c1): (158, "TransitionArrayMap"),
("read_only_space", 0x026e9): (45, "ThinOneByteStringMap"),
("read_only_space", 0x02711): (165, "FeedbackVectorMap"),
("read_only_space", 0x0274d): (67, "ArgumentsMarkerMap"),
("read_only_space", 0x027ad): (67, "ExceptionMap"),
("read_only_space", 0x02809): (67, "TerminationExceptionMap"),
("read_only_space", 0x02871): (67, "OptimizedOutMap"),
("read_only_space", 0x028d1): (67, "StaleRegisterMap"),
("read_only_space", 0x02931): (128, "ScriptContextTableMap"),
("read_only_space", 0x02959): (126, "ClosureFeedbackCellArrayMap"),
("read_only_space", 0x02981): (164, "FeedbackMetadataArrayMap"),
("read_only_space", 0x029a9): (116, "ArrayListMap"),
("read_only_space", 0x029d1): (65, "BigIntMap"),
("read_only_space", 0x029f9): (127, "ObjectBoilerplateDescriptionMap"),
("read_only_space", 0x02a21): (130, "BytecodeArrayMap"),
("read_only_space", 0x02a49): (161, "CodeDataContainerMap"),
("read_only_space", 0x02a71): (162, "CoverageInfoMap"),
("read_only_space", 0x02a99): (131, "FixedDoubleArrayMap"),
("read_only_space", 0x02ac1): (119, "GlobalDictionaryMap"),
("read_only_space", 0x02ae9): (97, "ManyClosuresCellMap"),
("read_only_space", 0x02b11): (116, "ModuleInfoMap"),
("read_only_space", 0x02b39): (120, "NameDictionaryMap"),
("read_only_space", 0x02b61): (97, "NoClosuresCellMap"),
("read_only_space", 0x02b89): (121, "NumberDictionaryMap"),
("read_only_space", 0x02bb1): (97, "OneClosureCellMap"),
("read_only_space", 0x02bd9): (122, "OrderedHashMapMap"),
("read_only_space", 0x02c01): (123, "OrderedHashSetMap"),
("read_only_space", 0x02c29): (124, "OrderedNameDictionaryMap"),
("read_only_space", 0x02c51): (172, "PreparseDataMap"),
("read_only_space", 0x02c79): (173, "PropertyArrayMap"),
("read_only_space", 0x02ca1): (93, "SideEffectCallHandlerInfoMap"),
("read_only_space", 0x02cc9): (93, "SideEffectFreeCallHandlerInfoMap"),
("read_only_space", 0x02cf1): (93, "NextCallSideEffectFreeCallHandlerInfoMap"),
("read_only_space", 0x02d19): (125, "SimpleNumberDictionaryMap"),
("read_only_space", 0x02d41): (148, "SmallOrderedHashMapMap"),
("read_only_space", 0x02d69): (149, "SmallOrderedHashSetMap"),
("read_only_space", 0x02d91): (150, "SmallOrderedNameDictionaryMap"),
("read_only_space", 0x02db9): (153, "SourceTextModuleMap"),
("read_only_space", 0x02de1): (179, "SwissNameDictionaryMap"),
("read_only_space", 0x02e09): (154, "SyntheticModuleMap"),
("read_only_space", 0x02e31): (71, "WasmTypeInfoMap"),
("read_only_space", 0x02e59): (183, "WeakArrayListMap"),
("read_only_space", 0x02e81): (118, "EphemeronHashTableMap"),
("read_only_space", 0x02ea9): (163, "EmbedderDataArrayMap"),
("read_only_space", 0x02ed1): (184, "WeakCellMap"),
("read_only_space", 0x02ef9): (32, "StringMap"),
("read_only_space", 0x02f21): (41, "ConsOneByteStringMap"),
("read_only_space", 0x02f49): (33, "ConsStringMap"),
("read_only_space", 0x02f71): (37, "ThinStringMap"),
("read_only_space", 0x02f99): (35, "SlicedStringMap"),
("read_only_space", 0x02fc1): (43, "SlicedOneByteStringMap"),
("read_only_space", 0x02fe9): (34, "ExternalStringMap"),
("read_only_space", 0x03011): (42, "ExternalOneByteStringMap"),
("read_only_space", 0x03039): (50, "UncachedExternalStringMap"),
("read_only_space", 0x03061): (0, "InternalizedStringMap"),
("read_only_space", 0x03089): (2, "ExternalInternalizedStringMap"),
("read_only_space", 0x030b1): (10, "ExternalOneByteInternalizedStringMap"),
("read_only_space", 0x030d9): (18, "UncachedExternalInternalizedStringMap"),
("read_only_space", 0x03101): (26, "UncachedExternalOneByteInternalizedStringMap"),
("read_only_space", 0x03129): (58, "UncachedExternalOneByteStringMap"),
("read_only_space", 0x03151): (67, "SelfReferenceMarkerMap"),
("read_only_space", 0x03179): (67, "BasicBlockCountersMarkerMap"),
("read_only_space", 0x031bd): (87, "ArrayBoilerplateDescriptionMap"),
("read_only_space", 0x03291): (99, "InterceptorInfoMap"),
("read_only_space", 0x0540d): (72, "PromiseFulfillReactionJobTaskMap"),
("read_only_space", 0x05435): (73, "PromiseRejectReactionJobTaskMap"),
("read_only_space", 0x0545d): (74, "CallableTaskMap"),
("read_only_space", 0x05485): (75, "CallbackTaskMap"),
("read_only_space", 0x054ad): (76, "PromiseResolveThenableJobTaskMap"),
("read_only_space", 0x054d5): (79, "FunctionTemplateInfoMap"),
("read_only_space", 0x054fd): (80, "ObjectTemplateInfoMap"),
("read_only_space", 0x05525): (81, "AccessCheckInfoMap"),
("read_only_space", 0x0554d): (82, "AccessorInfoMap"),
("read_only_space", 0x05575): (83, "AccessorPairMap"),
("read_only_space", 0x0559d): (84, "AliasedArgumentsEntryMap"),
("read_only_space", 0x055c5): (85, "AllocationMementoMap"),
("read_only_space", 0x055ed): (88, "AsmWasmDataMap"),
("read_only_space", 0x05615): (89, "AsyncGeneratorRequestMap"),
("read_only_space", 0x0563d): (90, "BreakPointMap"),
("read_only_space", 0x05665): (91, "BreakPointInfoMap"),
("read_only_space", 0x0568d): (92, "CachedTemplateObjectMap"),
("read_only_space", 0x056b5): (94, "ClassPositionsMap"),
("read_only_space", 0x056dd): (95, "DebugInfoMap"),
("read_only_space", 0x05705): (98, "FunctionTemplateRareDataMap"),
("read_only_space", 0x0572d): (100, "InterpreterDataMap"),
("read_only_space", 0x05755): (101, "ModuleRequestMap"),
("read_only_space", 0x0577d): (102, "PromiseCapabilityMap"),
("read_only_space", 0x057a5): (103, "PromiseReactionMap"),
("read_only_space", 0x057cd): (104, "PropertyDescriptorObjectMap"),
("read_only_space", 0x057f5): (105, "PrototypeInfoMap"),
("read_only_space", 0x0581d): (106, "RegExpBoilerplateDescriptionMap"),
("read_only_space", 0x05845): (107, "ScriptMap"),
("read_only_space", 0x0586d): (108, "SourceTextModuleInfoEntryMap"),
("read_only_space", 0x05895): (109, "StackTraceFrameMap"),
("read_only_space", 0x058bd): (110, "TemplateObjectDescriptionMap"),
("read_only_space", 0x058e5): (111, "Tuple2Map"),
("read_only_space", 0x0590d): (112, "WasmExceptionTagMap"),
("read_only_space", 0x05935): (113, "WasmExportedFunctionDataMap"),
("read_only_space", 0x0595d): (114, "WasmIndirectFunctionTableMap"),
("read_only_space", 0x05985): (115, "WasmJSFunctionDataMap"),
("read_only_space", 0x059ad): (134, "SloppyArgumentsElementsMap"),
("read_only_space", 0x059d5): (151, "DescriptorArrayMap"),
("read_only_space", 0x059fd): (156, "UncompiledDataWithoutPreparseDataMap"),
("read_only_space", 0x05a25): (155, "UncompiledDataWithPreparseDataMap"),
("read_only_space", 0x05a4d): (171, "OnHeapBasicBlockProfilerDataMap"),
("read_only_space", 0x05a75): (181, "WasmCapiFunctionDataMap"),
("read_only_space", 0x05a9d): (168, "InternalClassMap"),
("read_only_space", 0x05ac5): (177, "SmiPairMap"),
("read_only_space", 0x05aed): (176, "SmiBoxMap"),
("read_only_space", 0x05b15): (145, "ExportedSubClassBaseMap"),
("read_only_space", 0x05b3d): (146, "ExportedSubClassMap"),
("read_only_space", 0x05b65): (68, "AbstractInternalClassSubclass1Map"),
("read_only_space", 0x05b8d): (69, "AbstractInternalClassSubclass2Map"),
("read_only_space", 0x05bb5): (132, "InternalClassWithSmiElementsMap"),
("read_only_space", 0x05bdd): (169, "InternalClassWithStructElementsMap"),
("read_only_space", 0x05c05): (147, "ExportedSubClass2Map"),
("read_only_space", 0x05c2d): (178, "SortStateMap"),
("read_only_space", 0x05c55): (86, "AllocationSiteWithWeakNextMap"),
("read_only_space", 0x05c7d): (86, "AllocationSiteWithoutWeakNextMap"),
("read_only_space", 0x05ca5): (77, "LoadHandler1Map"),
("read_only_space", 0x05ccd): (77, "LoadHandler2Map"),
("read_only_space", 0x05cf5): (77, "LoadHandler3Map"),
("read_only_space", 0x05d1d): (78, "StoreHandler0Map"),
("read_only_space", 0x05d45): (78, "StoreHandler1Map"),
("read_only_space", 0x05d6d): (78, "StoreHandler2Map"),
("read_only_space", 0x05d95): (78, "StoreHandler3Map"),
("map_space", 0x02119): (1057, "ExternalMap"),
("map_space", 0x02141): (1098, "JSMessageObjectMap"),
}
# List of known V8 objects.
KNOWN_OBJECTS = {
("read_only_space", 0x021b9): "EmptyWeakFixedArray",
("read_only_space", 0x021c1): "EmptyDescriptorArray",
("read_only_space", 0x021f9): "EmptyEnumCache",
("read_only_space", 0x0222d): "EmptyFixedArray",
("read_only_space", 0x02235): "NullValue",
("read_only_space", 0x0233d): "UninitializedValue",
("read_only_space", 0x023b5): "UndefinedValue",
("read_only_space", 0x023f9): "NanValue",
("read_only_space", 0x0242d): "TheHoleValue",
("read_only_space", 0x02459): "HoleNanValue",
("read_only_space", 0x0248d): "TrueValue",
("read_only_space", 0x024cd): "FalseValue",
("read_only_space", 0x024fd): "empty_string",
("read_only_space", 0x02739): "EmptyScopeInfo",
("read_only_space", 0x02775): "ArgumentsMarker",
("read_only_space", 0x027d5): "Exception",
("read_only_space", 0x02831): "TerminationException",
("read_only_space", 0x02899): "OptimizedOut",
("read_only_space", 0x028f9): "StaleRegister",
("read_only_space", 0x031a1): "EmptyPropertyArray",
("read_only_space", 0x031a9): "EmptyByteArray",
("read_only_space", 0x031b1): "EmptyObjectBoilerplateDescription",
("read_only_space", 0x031e5): "EmptyArrayBoilerplateDescription",
("read_only_space", 0x031f1): "EmptyClosureFeedbackCellArray",
("read_only_space", 0x031f9): "EmptySlowElementDictionary",
("read_only_space", 0x0321d): "EmptyOrderedHashMap",
("read_only_space", 0x03231): "EmptyOrderedHashSet",
("read_only_space", 0x03245): "EmptyFeedbackMetadata",
("read_only_space", 0x03251): "EmptyPropertyDictionary",
("read_only_space", 0x03279): "EmptyOrderedPropertyDictionary",
("read_only_space", 0x032b9): "NoOpInterceptorInfo",
("read_only_space", 0x032e1): "EmptyWeakArrayList",
("read_only_space", 0x032ed): "InfinityValue",
("read_only_space", 0x032f9): "MinusZeroValue",
("read_only_space", 0x03305): "MinusInfinityValue",
("read_only_space", 0x03311): "SelfReferenceMarker",
("read_only_space", 0x03351): "BasicBlockCountersMarker",
("read_only_space", 0x03395): "OffHeapTrampolineRelocationInfo",
("read_only_space", 0x033a1): "TrampolineTrivialCodeDataContainer",
("read_only_space", 0x033ad): "TrampolinePromiseRejectionCodeDataContainer",
("read_only_space", 0x033b9): "GlobalThisBindingScopeInfo",
("read_only_space", 0x033f1): "EmptyFunctionScopeInfo",
("read_only_space", 0x03419): "NativeScopeInfo",
("read_only_space", 0x03435): "HashSeed",
("old_space", 0x02119): "ArgumentsIteratorAccessor",
("old_space", 0x0215d): "ArrayLengthAccessor",
("old_space", 0x021a1): "BoundFunctionLengthAccessor",
("old_space", 0x021e5): "BoundFunctionNameAccessor",
("old_space", 0x02229): "ErrorStackAccessor",
("old_space", 0x0226d): "FunctionArgumentsAccessor",
("old_space", 0x022b1): "FunctionCallerAccessor",
("old_space", 0x022f5): "FunctionNameAccessor",
("old_space", 0x02339): "FunctionLengthAccessor",
("old_space", 0x0237d): "FunctionPrototypeAccessor",
("old_space", 0x023c1): "StringLengthAccessor",
("old_space", 0x02405): "InvalidPrototypeValidityCell",
("old_space", 0x0240d): "EmptyScript",
("old_space", 0x0244d): "ManyClosuresCell",
("old_space", 0x02459): "ArrayConstructorProtector",
("old_space", 0x0246d): "NoElementsProtector",
("old_space", 0x02481): "IsConcatSpreadableProtector",
("old_space", 0x02495): "ArraySpeciesProtector",
("old_space", 0x024a9): "TypedArraySpeciesProtector",
("old_space", 0x024bd): "PromiseSpeciesProtector",
("old_space", 0x024d1): "RegExpSpeciesProtector",
("old_space", 0x024e5): "StringLengthProtector",
("old_space", 0x024f9): "ArrayIteratorProtector",
("old_space", 0x0250d): "ArrayBufferDetachingProtector",
("old_space", 0x02521): "PromiseHookProtector",
("old_space", 0x02535): "PromiseResolveProtector",
("old_space", 0x02549): "MapIteratorProtector",
("old_space", 0x0255d): "PromiseThenProtector",
("old_space", 0x02571): "SetIteratorProtector",
("old_space", 0x02585): "StringIteratorProtector",
("old_space", 0x02599): "SingleCharacterStringCache",
("old_space", 0x029a1): "StringSplitCache",
("old_space", 0x02da9): "RegExpMultipleCache",
("old_space", 0x031b1): "BuiltinsConstantsTable",
("old_space", 0x035b1): "AsyncFunctionAwaitRejectSharedFun",
("old_space", 0x035d5): "AsyncFunctionAwaitResolveSharedFun",
("old_space", 0x035f9): "AsyncGeneratorAwaitRejectSharedFun",
("old_space", 0x0361d): "AsyncGeneratorAwaitResolveSharedFun",
("old_space", 0x03641): "AsyncGeneratorYieldResolveSharedFun",
("old_space", 0x03665): "AsyncGeneratorReturnResolveSharedFun",
("old_space", 0x03689): "AsyncGeneratorReturnClosedRejectSharedFun",
("old_space", 0x036ad): "AsyncGeneratorReturnClosedResolveSharedFun",
("old_space", 0x036d1): "AsyncIteratorValueUnwrapSharedFun",
("old_space", 0x036f5): "PromiseAllResolveElementSharedFun",
("old_space", 0x03719): "PromiseAllSettledResolveElementSharedFun",
("old_space", 0x0373d): "PromiseAllSettledRejectElementSharedFun",
("old_space", 0x03761): "PromiseAnyRejectElementSharedFun",
("old_space", 0x03785): "PromiseCapabilityDefaultRejectSharedFun",
("old_space", 0x037a9): "PromiseCapabilityDefaultResolveSharedFun",
("old_space", 0x037cd): "PromiseCatchFinallySharedFun",
("old_space", 0x037f1): "PromiseGetCapabilitiesExecutorSharedFun",
("old_space", 0x03815): "PromiseThenFinallySharedFun",
("old_space", 0x03839): "PromiseThrowerFinallySharedFun",
("old_space", 0x0385d): "PromiseValueThunkFinallySharedFun",
("old_space", 0x03881): "ProxyRevokeSharedFun",
}
# Lower 32 bits of first page addresses for various heap spaces.
HEAP_FIRST_PAGES = {
0x08100000: "old_space",
0x08140000: "map_space",
0x08040000: "read_only_space",
}
# List of known V8 Frame Markers.
FRAME_MARKERS = (
"ENTRY",
"CONSTRUCT_ENTRY",
"EXIT",
"OPTIMIZED",
"WASM",
"WASM_TO_JS",
"JS_TO_WASM",
"WASM_DEBUG_BREAK",
"C_WASM_ENTRY",
"WASM_EXIT",
"WASM_COMPILE_LAZY",
"INTERPRETED",
"STUB",
"BUILTIN_CONTINUATION",
"JAVA_SCRIPT_BUILTIN_CONTINUATION",
"JAVA_SCRIPT_BUILTIN_CONTINUATION_WITH_CATCH",
"INTERNAL",
"CONSTRUCT",
"BUILTIN",
"BUILTIN_EXIT",
"NATIVE",
)
# This set of constants is generated from a shipping build.