v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::V8HeapExplorer Class Reference

#include <heap-snapshot-generator.h>

Inheritance diagram for v8::internal::V8HeapExplorer:
Collaboration diagram for v8::internal::V8HeapExplorer:

Public Types

using TemporaryGlobalObjectTags
 

Public Member Functions

 V8HeapExplorer (HeapSnapshot *snapshot, SnapshottingProgressReportingInterface *progress, v8::HeapProfiler::ObjectNameResolver *resolver)
 
 ~V8HeapExplorer () override=default
 
 V8HeapExplorer (const V8HeapExplorer &)=delete
 
V8HeapExploreroperator= (const V8HeapExplorer &)=delete
 
V8_INLINE Isolateisolate ()
 
HeapEntryAllocateEntry (HeapThing ptr) override
 
HeapEntryAllocateEntry (Tagged< Smi > smi) override
 
uint32_t EstimateObjectsCount ()
 
void PopulateLineEnds ()
 
bool IterateAndExtractReferences (HeapSnapshotGenerator *generator)
 
TemporaryGlobalObjectTags CollectTemporaryGlobalObjectsTags ()
 
void MakeGlobalObjectTagMap (TemporaryGlobalObjectTags &&)
 
void TagBuiltinCodeObject (Tagged< Code > code, const char *name)
 
HeapEntryAddEntry (Address address, HeapEntry::Type type, const char *name, size_t size)
 
- Public Member Functions inherited from v8::internal::HeapEntriesAllocator
virtual ~HeapEntriesAllocator ()=default
 

Static Public Member Functions

static Tagged< JSFunctionGetConstructor (Isolate *isolate, Tagged< JSReceiver > receiver)
 
static Tagged< StringGetConstructorName (Isolate *isolate, Tagged< JSObject > object)
 

Private Member Functions

void MarkVisitedField (int offset)
 
HeapEntryAddEntry (Tagged< HeapObject > object)
 
HeapEntryAddEntry (Tagged< HeapObject > object, HeapEntry::Type type, const char *name)
 
const char * GetSystemEntryName (Tagged< HeapObject > object)
 
HeapEntry::Type GetSystemEntryType (Tagged< HeapObject > object)
 
Tagged< JSFunctionGetLocationFunction (Tagged< HeapObject > object)
 
void ExtractLocation (HeapEntry *entry, Tagged< HeapObject > object)
 
void ExtractLocationForJSFunction (HeapEntry *entry, Tagged< JSFunction > func)
 
void ExtractReferences (HeapEntry *entry, Tagged< HeapObject > obj)
 
void ExtractJSGlobalProxyReferences (HeapEntry *entry, Tagged< JSGlobalProxy > proxy)
 
void ExtractJSObjectReferences (HeapEntry *entry, Tagged< JSObject > js_obj)
 
void ExtractStringReferences (HeapEntry *entry, Tagged< String > obj)
 
void ExtractSymbolReferences (HeapEntry *entry, Tagged< Symbol > symbol)
 
void ExtractJSCollectionReferences (HeapEntry *entry, Tagged< JSCollection > collection)
 
void ExtractJSWeakCollectionReferences (HeapEntry *entry, Tagged< JSWeakCollection > collection)
 
void ExtractEphemeronHashTableReferences (HeapEntry *entry, Tagged< EphemeronHashTable > table)
 
void ExtractContextReferences (HeapEntry *entry, Tagged< Context > context)
 
void ExtractMapReferences (HeapEntry *entry, Tagged< Map > map)
 
void ExtractSharedFunctionInfoReferences (HeapEntry *entry, Tagged< SharedFunctionInfo > shared)
 
void ExtractScriptReferences (HeapEntry *entry, Tagged< Script > script)
 
void ExtractAccessorInfoReferences (HeapEntry *entry, Tagged< AccessorInfo > accessor_info)
 
void ExtractAccessorPairReferences (HeapEntry *entry, Tagged< AccessorPair > accessors)
 
void ExtractCodeReferences (HeapEntry *entry, Tagged< Code > code)
 
void ExtractInstructionStreamReferences (HeapEntry *entry, Tagged< InstructionStream > code)
 
void ExtractCellReferences (HeapEntry *entry, Tagged< Cell > cell)
 
void ExtractJSWeakRefReferences (HeapEntry *entry, Tagged< JSWeakRef > js_weak_ref)
 
void ExtractWeakCellReferences (HeapEntry *entry, Tagged< WeakCell > weak_cell)
 
void ExtractFeedbackCellReferences (HeapEntry *entry, Tagged< FeedbackCell > feedback_cell)
 
void ExtractPropertyCellReferences (HeapEntry *entry, Tagged< PropertyCell > cell)
 
void ExtractPrototypeInfoReferences (HeapEntry *entry, Tagged< PrototypeInfo > info)
 
void ExtractAllocationSiteReferences (HeapEntry *entry, Tagged< AllocationSite > site)
 
void ExtractArrayBoilerplateDescriptionReferences (HeapEntry *entry, Tagged< ArrayBoilerplateDescription > value)
 
void ExtractRegExpBoilerplateDescriptionReferences (HeapEntry *entry, Tagged< RegExpBoilerplateDescription > value)
 
void ExtractJSArrayBufferReferences (HeapEntry *entry, Tagged< JSArrayBuffer > buffer)
 
void ExtractJSPromiseReferences (HeapEntry *entry, Tagged< JSPromise > promise)
 
void ExtractJSGeneratorObjectReferences (HeapEntry *entry, Tagged< JSGeneratorObject > generator)
 
void ExtractFixedArrayReferences (HeapEntry *entry, Tagged< FixedArray > array)
 
void ExtractNumberReference (HeapEntry *entry, Tagged< Object > number)
 
void ExtractBytecodeArrayReferences (HeapEntry *entry, Tagged< BytecodeArray > bytecode)
 
void ExtractScopeInfoReferences (HeapEntry *entry, Tagged< ScopeInfo > info)
 
void ExtractFeedbackVectorReferences (HeapEntry *entry, Tagged< FeedbackVector > feedback_vector)
 
void ExtractDescriptorArrayReferences (HeapEntry *entry, Tagged< DescriptorArray > array)
 
void ExtractEnumCacheReferences (HeapEntry *entry, Tagged< EnumCache > cache)
 
void ExtractTransitionArrayReferences (HeapEntry *entry, Tagged< TransitionArray > transitions)
 
template<typename T >
void ExtractWeakArrayReferences (int header_size, HeapEntry *entry, Tagged< T > array)
 
void ExtractPropertyReferences (Tagged< JSObject > js_obj, HeapEntry *entry)
 
void ExtractAccessorPairProperty (HeapEntry *entry, Tagged< Name > key, Tagged< Object > callback_obj, int field_offset=-1)
 
void ExtractElementReferences (Tagged< JSObject > js_obj, HeapEntry *entry)
 
void ExtractInternalReferences (Tagged< JSObject > js_obj, HeapEntry *entry)
 
bool IsEssentialObject (Tagged< Object > object)
 
bool IsEssentialHiddenReference (Tagged< Object > parent, int field_offset)
 
void SetContextReference (HeapEntry *parent_entry, Tagged< String > reference_name, Tagged< Object > child, int field_offset)
 
void SetNativeBindReference (HeapEntry *parent_entry, const char *reference_name, Tagged< Object > child)
 
void SetElementReference (HeapEntry *parent_entry, int index, Tagged< Object > child)
 
void SetInternalReference (HeapEntry *parent_entry, const char *reference_name, Tagged< Object > child, int field_offset=-1)
 
void SetInternalReference (HeapEntry *parent_entry, int index, Tagged< Object > child, int field_offset=-1)
 
void SetHiddenReference (Tagged< HeapObject > parent_obj, HeapEntry *parent_entry, int index, Tagged< Object > child, int field_offset)
 
void SetWeakReference (HeapEntry *parent_entry, const char *reference_name, Tagged< Object > child_obj, int field_offset, HeapEntry::ReferenceVerification verification=HeapEntry::kVerify)
 
void SetWeakReference (HeapEntry *parent_entry, int index, Tagged< Object > child_obj, std::optional< int > field_offset)
 
void SetPropertyReference (HeapEntry *parent_entry, Tagged< Name > reference_name, Tagged< Object > child, const char *name_format_string=nullptr, int field_offset=-1)
 
void SetDataOrAccessorPropertyReference (PropertyKind kind, HeapEntry *parent_entry, Tagged< Name > reference_name, Tagged< Object > child, const char *name_format_string=nullptr, int field_offset=-1)
 
void SetUserGlobalReference (Tagged< Object > user_global)
 
void SetRootGcRootsReference ()
 
void SetGcRootsReference (Root root)
 
void SetGcSubrootReference (Root root, const char *description, bool is_weak, Tagged< Object > child)
 
const char * GetStrongGcSubrootName (Tagged< HeapObject > object)
 
void TagObject (Tagged< Object > obj, const char *tag, std::optional< HeapEntry::Type > type={}, bool overwrite_existing_name=false)
 
void RecursivelyTagConstantPool (Tagged< Object > obj, const char *tag, HeapEntry::Type type, int recursion_limit)
 
HeapEntryGetEntry (Tagged< Object > obj)
 

Private Attributes

Heapheap_
 
HeapSnapshotsnapshot_
 
StringsStoragenames_
 
HeapObjectsMapheap_object_map_
 
SnapshottingProgressReportingInterfaceprogress_
 
HeapSnapshotGeneratorgenerator_ = nullptr
 
std::unordered_map< Tagged< JSGlobalObject >, const char *, Object::Hasherglobal_object_tag_map_
 
UnorderedHeapObjectMap< const char * > strong_gc_subroot_names_
 
std::unordered_set< Tagged< JSGlobalObject >, Object::Hasheruser_roots_
 
v8::HeapProfiler::ObjectNameResolverglobal_object_name_resolver_
 
std::vector< boolvisited_fields_
 
size_t max_pointers_
 

Friends

class IndexedReferencesExtractor
 
class RootsReferencesExtractor
 

Detailed Description

Definition at line 410 of file heap-snapshot-generator.h.

Member Typedef Documentation

◆ TemporaryGlobalObjectTags

Initial value:
std::vector<std::pair<v8::Global<v8::Object>, const char*>>

Definition at line 427 of file heap-snapshot-generator.h.

Constructor & Destructor Documentation

◆ V8HeapExplorer() [1/2]

v8::internal::V8HeapExplorer::V8HeapExplorer ( HeapSnapshot * snapshot,
SnapshottingProgressReportingInterface * progress,
v8::HeapProfiler::ObjectNameResolver * resolver )

Definition at line 823 of file heap-snapshot-generator.cc.

◆ ~V8HeapExplorer()

v8::internal::V8HeapExplorer::~V8HeapExplorer ( )
overridedefault

◆ V8HeapExplorer() [2/2]

v8::internal::V8HeapExplorer::V8HeapExplorer ( const V8HeapExplorer & )
delete

Member Function Documentation

◆ AddEntry() [1/3]

HeapEntry * v8::internal::V8HeapExplorer::AddEntry ( Address address,
HeapEntry::Type type,
const char * name,
size_t size )

Definition at line 1061 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AddEntry() [2/3]

HeapEntry * v8::internal::V8HeapExplorer::AddEntry ( Tagged< HeapObject > object)
private

Definition at line 894 of file heap-snapshot-generator.cc.

Here is the call graph for this function:

◆ AddEntry() [3/3]

HeapEntry * v8::internal::V8HeapExplorer::AddEntry ( Tagged< HeapObject > object,
HeapEntry::Type type,
const char * name )
private

Definition at line 1054 of file heap-snapshot-generator.cc.

Here is the call graph for this function:

◆ AllocateEntry() [1/2]

HeapEntry * v8::internal::V8HeapExplorer::AllocateEntry ( HeapThing ptr)
overridevirtual

Implements v8::internal::HeapEntriesAllocator.

Definition at line 834 of file heap-snapshot-generator.cc.

Here is the call graph for this function:

◆ AllocateEntry() [2/2]

HeapEntry * v8::internal::V8HeapExplorer::AllocateEntry ( Tagged< Smi > smi)
overridevirtual

Implements v8::internal::HeapEntriesAllocator.

Definition at line 839 of file heap-snapshot-generator.cc.

Here is the call graph for this function:

◆ CollectTemporaryGlobalObjectsTags()

V8HeapExplorer::TemporaryGlobalObjectTags v8::internal::V8HeapExplorer::CollectTemporaryGlobalObjectsTags ( )

Definition at line 2934 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EstimateObjectsCount()

uint32_t v8::internal::V8HeapExplorer::EstimateObjectsCount ( )

Definition at line 1191 of file heap-snapshot-generator.cc.

Here is the caller graph for this function:

◆ ExtractAccessorInfoReferences()

void v8::internal::V8HeapExplorer::ExtractAccessorInfoReferences ( HeapEntry * entry,
Tagged< AccessorInfo > accessor_info )
private

Definition at line 1863 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractAccessorPairProperty()

void v8::internal::V8HeapExplorer::ExtractAccessorPairProperty ( HeapEntry * entry,
Tagged< Name > key,
Tagged< Object > callback_obj,
int field_offset = -1 )
private

Definition at line 2241 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractAccessorPairReferences()

void v8::internal::V8HeapExplorer::ExtractAccessorPairReferences ( HeapEntry * entry,
Tagged< AccessorPair > accessors )
private

Definition at line 1871 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractAllocationSiteReferences()

void v8::internal::V8HeapExplorer::ExtractAllocationSiteReferences ( HeapEntry * entry,
Tagged< AllocationSite > site )
private

Definition at line 1983 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractArrayBoilerplateDescriptionReferences()

void v8::internal::V8HeapExplorer::ExtractArrayBoilerplateDescriptionReferences ( HeapEntry * entry,
Tagged< ArrayBoilerplateDescription > value )
private

Definition at line 1995 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractBytecodeArrayReferences()

void v8::internal::V8HeapExplorer::ExtractBytecodeArrayReferences ( HeapEntry * entry,
Tagged< BytecodeArray > bytecode )
private

Definition at line 2077 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractCellReferences()

void v8::internal::V8HeapExplorer::ExtractCellReferences ( HeapEntry * entry,
Tagged< Cell > cell )
private

Definition at line 1954 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractCodeReferences()

void v8::internal::V8HeapExplorer::ExtractCodeReferences ( HeapEntry * entry,
Tagged< Code > code )
private

Definition at line 1901 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractContextReferences()

void v8::internal::V8HeapExplorer::ExtractContextReferences ( HeapEntry * entry,
Tagged< Context > context )
private

Definition at line 1678 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractDescriptorArrayReferences()

void v8::internal::V8HeapExplorer::ExtractDescriptorArrayReferences ( HeapEntry * entry,
Tagged< DescriptorArray > array )
private

Definition at line 2115 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractElementReferences()

void v8::internal::V8HeapExplorer::ExtractElementReferences ( Tagged< JSObject > js_obj,
HeapEntry * entry )
private

Definition at line 2258 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractEnumCacheReferences()

void v8::internal::V8HeapExplorer::ExtractEnumCacheReferences ( HeapEntry * entry,
Tagged< EnumCache > cache )
private

Definition at line 2135 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractEphemeronHashTableReferences()

void v8::internal::V8HeapExplorer::ExtractEphemeronHashTableReferences ( HeapEntry * entry,
Tagged< EphemeronHashTable > table )
private

Definition at line 1636 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractFeedbackCellReferences()

void v8::internal::V8HeapExplorer::ExtractFeedbackCellReferences ( HeapEntry * entry,
Tagged< FeedbackCell > feedback_cell )
private

Definition at line 1959 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractFeedbackVectorReferences()

void v8::internal::V8HeapExplorer::ExtractFeedbackVectorReferences ( HeapEntry * entry,
Tagged< FeedbackVector > feedback_vector )
private

Definition at line 2094 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractFixedArrayReferences()

void v8::internal::V8HeapExplorer::ExtractFixedArrayReferences ( HeapEntry * entry,
Tagged< FixedArray > array )
private

Definition at line 2041 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractInstructionStreamReferences()

void v8::internal::V8HeapExplorer::ExtractInstructionStreamReferences ( HeapEntry * entry,
Tagged< InstructionStream > code )
private

Definition at line 1940 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractInternalReferences()

void v8::internal::V8HeapExplorer::ExtractInternalReferences ( Tagged< JSObject > js_obj,
HeapEntry * entry )
private

Definition at line 2282 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractJSArrayBufferReferences()

void v8::internal::V8HeapExplorer::ExtractJSArrayBufferReferences ( HeapEntry * entry,
Tagged< JSArrayBuffer > buffer )
private

Definition at line 2008 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractJSCollectionReferences()

void v8::internal::V8HeapExplorer::ExtractJSCollectionReferences ( HeapEntry * entry,
Tagged< JSCollection > collection )
private

Definition at line 1624 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractJSGeneratorObjectReferences()

void v8::internal::V8HeapExplorer::ExtractJSGeneratorObjectReferences ( HeapEntry * entry,
Tagged< JSGeneratorObject > generator )
private

Definition at line 2028 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractJSGlobalProxyReferences()

void v8::internal::V8HeapExplorer::ExtractJSGlobalProxyReferences ( HeapEntry * entry,
Tagged< JSGlobalProxy > proxy )
private

Definition at line 1462 of file heap-snapshot-generator.cc.

Here is the caller graph for this function:

◆ ExtractJSObjectReferences()

void v8::internal::V8HeapExplorer::ExtractJSObjectReferences ( HeapEntry * entry,
Tagged< JSObject > js_obj )
private

Definition at line 1465 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractJSPromiseReferences()

void v8::internal::V8HeapExplorer::ExtractJSPromiseReferences ( HeapEntry * entry,
Tagged< JSPromise > promise )
private

Definition at line 2021 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractJSWeakCollectionReferences()

void v8::internal::V8HeapExplorer::ExtractJSWeakCollectionReferences ( HeapEntry * entry,
Tagged< JSWeakCollection > collection )
private

Definition at line 1630 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractJSWeakRefReferences()

void v8::internal::V8HeapExplorer::ExtractJSWeakRefReferences ( HeapEntry * entry,
Tagged< JSWeakRef > js_weak_ref )
private

Definition at line 1879 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractLocation()

void v8::internal::V8HeapExplorer::ExtractLocation ( HeapEntry * entry,
Tagged< HeapObject > object )
private

Definition at line 869 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractLocationForJSFunction()

void v8::internal::V8HeapExplorer::ExtractLocationForJSFunction ( HeapEntry * entry,
Tagged< JSFunction > func )
private

Definition at line 878 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractMapReferences()

void v8::internal::V8HeapExplorer::ExtractMapReferences ( HeapEntry * entry,
Tagged< Map > map )
private

Definition at line 1726 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractNumberReference()

void v8::internal::V8HeapExplorer::ExtractNumberReference ( HeapEntry * entry,
Tagged< Object > number )
private

Definition at line 2049 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractPropertyCellReferences()

void v8::internal::V8HeapExplorer::ExtractPropertyCellReferences ( HeapEntry * entry,
Tagged< PropertyCell > cell )
private

Definition at line 1966 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractPropertyReferences()

void v8::internal::V8HeapExplorer::ExtractPropertyReferences ( Tagged< JSObject > js_obj,
HeapEntry * entry )
private

Definition at line 2165 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractPrototypeInfoReferences()

void v8::internal::V8HeapExplorer::ExtractPrototypeInfoReferences ( HeapEntry * entry,
Tagged< PrototypeInfo > info )
private

Definition at line 1975 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractReferences()

void v8::internal::V8HeapExplorer::ExtractReferences ( HeapEntry * entry,
Tagged< HeapObject > obj )
private

Definition at line 1357 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractRegExpBoilerplateDescriptionReferences()

void v8::internal::V8HeapExplorer::ExtractRegExpBoilerplateDescriptionReferences ( HeapEntry * entry,
Tagged< RegExpBoilerplateDescription > value )
private

Definition at line 2003 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractScopeInfoReferences()

void v8::internal::V8HeapExplorer::ExtractScopeInfoReferences ( HeapEntry * entry,
Tagged< ScopeInfo > info )
private

Definition at line 2086 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractScriptReferences()

void v8::internal::V8HeapExplorer::ExtractScriptReferences ( HeapEntry * entry,
Tagged< Script > script )
private

Definition at line 1834 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractSharedFunctionInfoReferences()

void v8::internal::V8HeapExplorer::ExtractSharedFunctionInfoReferences ( HeapEntry * entry,
Tagged< SharedFunctionInfo > shared )
private

Definition at line 1794 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractStringReferences()

void v8::internal::V8HeapExplorer::ExtractStringReferences ( HeapEntry * entry,
Tagged< String > obj )
private

Definition at line 1592 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractSymbolReferences()

void v8::internal::V8HeapExplorer::ExtractSymbolReferences ( HeapEntry * entry,
Tagged< Symbol > symbol )
private

Definition at line 1618 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractTransitionArrayReferences()

void v8::internal::V8HeapExplorer::ExtractTransitionArrayReferences ( HeapEntry * entry,
Tagged< TransitionArray > transitions )
private

Definition at line 2141 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractWeakArrayReferences()

template<typename T >
void v8::internal::V8HeapExplorer::ExtractWeakArrayReferences ( int header_size,
HeapEntry * entry,
Tagged< T > array )
private

Definition at line 2150 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExtractWeakCellReferences()

void v8::internal::V8HeapExplorer::ExtractWeakCellReferences ( HeapEntry * entry,
Tagged< WeakCell > weak_cell )
private

Definition at line 1885 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetConstructor()

Tagged< JSFunction > v8::internal::V8HeapExplorer::GetConstructor ( Isolate * isolate,
Tagged< JSReceiver > receiver )
static

Definition at line 2431 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetConstructorName()

Tagged< String > v8::internal::V8HeapExplorer::GetConstructorName ( Isolate * isolate,
Tagged< JSObject > object )
static

Definition at line 2443 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetEntry()

HeapEntry * v8::internal::V8HeapExplorer::GetEntry ( Tagged< Object > obj)
private

Definition at line 2451 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetLocationFunction()

Tagged< JSFunction > v8::internal::V8HeapExplorer::GetLocationFunction ( Tagged< HeapObject > object)
private

Definition at line 849 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetStrongGcSubrootName()

const char * v8::internal::V8HeapExplorer::GetStrongGcSubrootName ( Tagged< HeapObject > object)
private

Definition at line 2841 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetSystemEntryName()

const char * v8::internal::V8HeapExplorer::GetSystemEntryName ( Tagged< HeapObject > object)
private

Definition at line 1078 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetSystemEntryType()

HeapEntry::Type v8::internal::V8HeapExplorer::GetSystemEntryType ( Tagged< HeapObject > object)
private

Definition at line 1123 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsEssentialHiddenReference()

bool v8::internal::V8HeapExplorer::IsEssentialHiddenReference ( Tagged< Object > parent,
int field_offset )
private

Definition at line 2622 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsEssentialObject()

bool v8::internal::V8HeapExplorer::IsEssentialObject ( Tagged< Object > object)
private

Definition at line 2599 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isolate()

V8_INLINE Isolate * v8::internal::V8HeapExplorer::isolate ( )
inline

Definition at line 419 of file heap-snapshot-generator.h.

Here is the caller graph for this function:

◆ IterateAndExtractReferences()

bool v8::internal::V8HeapExplorer::IterateAndExtractReferences ( HeapSnapshotGenerator * generator)

Definition at line 2520 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MakeGlobalObjectTagMap()

void v8::internal::V8HeapExplorer::MakeGlobalObjectTagMap ( TemporaryGlobalObjectTags && global_object_tags)

Definition at line 2957 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MarkVisitedField()

void v8::internal::V8HeapExplorer::MarkVisitedField ( int offset)
private

Definition at line 2648 of file heap-snapshot-generator.cc.

Here is the caller graph for this function:

◆ operator=()

V8HeapExplorer & v8::internal::V8HeapExplorer::operator= ( const V8HeapExplorer & )
delete

◆ PopulateLineEnds()

void v8::internal::V8HeapExplorer::PopulateLineEnds ( )

Definition at line 1171 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RecursivelyTagConstantPool()

void v8::internal::V8HeapExplorer::RecursivelyTagConstantPool ( Tagged< Object > obj,
const char * tag,
HeapEntry::Type type,
int recursion_limit )
private

Definition at line 2871 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetContextReference()

void v8::internal::V8HeapExplorer::SetContextReference ( HeapEntry * parent_entry,
Tagged< String > reference_name,
Tagged< Object > child,
int field_offset )
private

Definition at line 2636 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetDataOrAccessorPropertyReference()

void v8::internal::V8HeapExplorer::SetDataOrAccessorPropertyReference ( PropertyKind kind,
HeapEntry * parent_entry,
Tagged< Name > reference_name,
Tagged< Object > child,
const char * name_format_string = nullptr,
int field_offset = -1 )
private

Definition at line 2748 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetElementReference()

void v8::internal::V8HeapExplorer::SetElementReference ( HeapEntry * parent_entry,
int index,
Tagged< Object > child )
private

Definition at line 2665 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetGcRootsReference()

void v8::internal::V8HeapExplorer::SetGcRootsReference ( Root root)
private

Definition at line 2794 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetGcSubrootReference()

void v8::internal::V8HeapExplorer::SetGcSubrootReference ( Root root,
const char * description,
bool is_weak,
Tagged< Object > child )
private

Definition at line 2799 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetHiddenReference()

void v8::internal::V8HeapExplorer::SetHiddenReference ( Tagged< HeapObject > parent_obj,
HeapEntry * parent_entry,
int index,
Tagged< Object > child,
int field_offset )
private

Definition at line 2701 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetInternalReference() [1/2]

void v8::internal::V8HeapExplorer::SetInternalReference ( HeapEntry * parent_entry,
const char * reference_name,
Tagged< Object > child,
int field_offset = -1 )
private

Definition at line 2673 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetInternalReference() [2/2]

void v8::internal::V8HeapExplorer::SetInternalReference ( HeapEntry * parent_entry,
int index,
Tagged< Object > child,
int field_offset = -1 )
private

Definition at line 2687 of file heap-snapshot-generator.cc.

Here is the call graph for this function:

◆ SetNativeBindReference()

void v8::internal::V8HeapExplorer::SetNativeBindReference ( HeapEntry * parent_entry,
const char * reference_name,
Tagged< Object > child )
private

Definition at line 2656 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetPropertyReference()

void v8::internal::V8HeapExplorer::SetPropertyReference ( HeapEntry * parent_entry,
Tagged< Name > reference_name,
Tagged< Object > child,
const char * name_format_string = nullptr,
int field_offset = -1 )
private

Definition at line 2761 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetRootGcRootsReference()

void v8::internal::V8HeapExplorer::SetRootGcRootsReference ( )
private

Definition at line 2782 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetUserGlobalReference()

void v8::internal::V8HeapExplorer::SetUserGlobalReference ( Tagged< Object > user_global)
private

Definition at line 2787 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetWeakReference() [1/2]

void v8::internal::V8HeapExplorer::SetWeakReference ( HeapEntry * parent_entry,
const char * reference_name,
Tagged< Object > child_obj,
int field_offset,
HeapEntry::ReferenceVerification verification = HeapEntry::kVerify )
private

Definition at line 2718 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetWeakReference() [2/2]

void v8::internal::V8HeapExplorer::SetWeakReference ( HeapEntry * parent_entry,
int index,
Tagged< Object > child_obj,
std::optional< int > field_offset )
private

Definition at line 2732 of file heap-snapshot-generator.cc.

Here is the call graph for this function:

◆ TagBuiltinCodeObject()

void v8::internal::V8HeapExplorer::TagBuiltinCodeObject ( Tagged< Code > code,
const char * name )

Definition at line 1893 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TagObject()

void v8::internal::V8HeapExplorer::TagObject ( Tagged< Object > obj,
const char * tag,
std::optional< HeapEntry::Type > type = {},
bool overwrite_existing_name = false )
private

Definition at line 2857 of file heap-snapshot-generator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ IndexedReferencesExtractor

friend class IndexedReferencesExtractor
friend

Definition at line 601 of file heap-snapshot-generator.h.

◆ RootsReferencesExtractor

friend class RootsReferencesExtractor
friend

Definition at line 602 of file heap-snapshot-generator.h.

Member Data Documentation

◆ generator_

HeapSnapshotGenerator* v8::internal::V8HeapExplorer::generator_ = nullptr
private

Definition at line 591 of file heap-snapshot-generator.h.

◆ global_object_name_resolver_

v8::HeapProfiler::ObjectNameResolver* v8::internal::V8HeapExplorer::global_object_name_resolver_
private

Definition at line 596 of file heap-snapshot-generator.h.

◆ global_object_tag_map_

std::unordered_map<Tagged<JSGlobalObject>, const char*, Object::Hasher> v8::internal::V8HeapExplorer::global_object_tag_map_
private

Definition at line 593 of file heap-snapshot-generator.h.

◆ heap_

Heap* v8::internal::V8HeapExplorer::heap_
private

Definition at line 586 of file heap-snapshot-generator.h.

◆ heap_object_map_

HeapObjectsMap* v8::internal::V8HeapExplorer::heap_object_map_
private

Definition at line 589 of file heap-snapshot-generator.h.

◆ max_pointers_

size_t v8::internal::V8HeapExplorer::max_pointers_
private

Definition at line 599 of file heap-snapshot-generator.h.

◆ names_

StringsStorage* v8::internal::V8HeapExplorer::names_
private

Definition at line 588 of file heap-snapshot-generator.h.

◆ progress_

SnapshottingProgressReportingInterface* v8::internal::V8HeapExplorer::progress_
private

Definition at line 590 of file heap-snapshot-generator.h.

◆ snapshot_

HeapSnapshot* v8::internal::V8HeapExplorer::snapshot_
private

Definition at line 587 of file heap-snapshot-generator.h.

◆ strong_gc_subroot_names_

UnorderedHeapObjectMap<const char*> v8::internal::V8HeapExplorer::strong_gc_subroot_names_
private

Definition at line 594 of file heap-snapshot-generator.h.

◆ user_roots_

std::unordered_set<Tagged<JSGlobalObject>, Object::Hasher> v8::internal::V8HeapExplorer::user_roots_
private

Definition at line 595 of file heap-snapshot-generator.h.

◆ visited_fields_

std::vector<bool> v8::internal::V8HeapExplorer::visited_fields_
private

Definition at line 598 of file heap-snapshot-generator.h.


The documentation for this class was generated from the following files: