UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FMallocDoubleFreeFinder Class Referencefinal

#include <MallocDoubleFreeFinder.h>

+ Inheritance diagram for FMallocDoubleFreeFinder:

Classes

struct  TrackedAllocationData
 

Public Member Functions

CORE_API FMallocDoubleFreeFinder (FMalloc *InMalloc)
 
CORE_API void TrackSpecial (void *Ptr)
 
virtual CORE_API void Init ()
 
- Public Member Functions inherited from FMallocCallstackHandler
CORE_API FMallocCallstackHandler (FMalloc *InMalloc)
 
virtual CORE_API voidMalloc (SIZE_T Count, uint32 Alignment=DEFAULT_ALIGNMENT) override
 
virtual CORE_API voidRealloc (void *Original, SIZE_T Count, uint32 Alignment=DEFAULT_ALIGNMENT) override
 
virtual CORE_API void Free (void *Original) override
 
virtual SIZE_T QuantizeSize (SIZE_T Count, uint32 Alignment) override
 
virtual bool GetAllocationSize (void *Original, SIZE_T &SizeOut) override
 
virtual void Trim (bool bTrimThreadCaches) override
 
virtual void SetupTLSCachesOnCurrentThread () override
 
virtual void MarkTLSCachesAsUsedOnCurrentThread () override
 
virtual void MarkTLSCachesAsUnusedOnCurrentThread ()
 
virtual void ClearAndDisableTLSCachesOnCurrentThread () override
 
virtual void InitializeStatsMetadata () override
 
virtual void UpdateStats () override
 
virtual void GetAllocatorStats (FGenericMemoryStats &out_Stats) override
 
virtual void DumpAllocatorStats (class FOutputDevice &Ar) override
 
virtual bool IsInternallyThreadSafe () const override
 
virtual bool ValidateHeap () override
 
virtual const TCHARGetDescriptiveName () override
 
virtual void OnMallocInitialized () override
 
virtual void OnPreFork () override
 
virtual void OnPostFork () override
 
void DumpStackTraceToLog (int32 StackIndex)
 
- Public Member Functions inherited from FMalloc
virtual CORE_API voidTryMalloc (SIZE_T Count, uint32 Alignment=DEFAULT_ALIGNMENT)
 
virtual CORE_API voidTryRealloc (void *Original, SIZE_T Count, uint32 Alignment=DEFAULT_ALIGNMENT)
 
virtual CORE_API voidMallocZeroed (SIZE_T Count, uint32 Alignment=DEFAULT_ALIGNMENT)
 
virtual CORE_API voidTryMallocZeroed (SIZE_T Count, uint32 Alignment=DEFAULT_ALIGNMENT)
 
virtual uint64 GetImmediatelyFreeableCachedMemorySize () const
 
virtual uint64 GetTotalFreeCachedMemorySize () const
 
- Public Member Functions inherited from FUseSystemMallocForNew
CORE_API voidoperator new (size_t Size)
 
CORE_API void operator delete (void *Ptr)
 
voidoperator new[] (size_t Size)
 
void operator delete[] (void *Ptr)
 
- Public Member Functions inherited from FExec
virtual CORE_API ~FExec ()
 
virtual CORE_API bool Exec (UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar)
 

Static Public Member Functions

static CORE_API FMallocOverrideIfEnabled (FMalloc *InUsedAlloc)
 

Protected Member Functions

virtual CORE_API void TrackMalloc (void *Ptr, uint32 Size, int32 CallStackIndex)
 
virtual CORE_API void TrackFree (void *Ptr, uint32 OldSize, int32 CallStackIndex)
 
- Protected Member Functions inherited from FMallocCallstackHandler
void IncDisabled ()
 
void DecDisabled ()
 
virtual bool IsDisabled ()
 
virtual CORE_API void TrackRealloc (void *OldPtr, void *NewPtr, uint32 NewSize, uint32 OldSize, int32 CallStackIndex)
 
virtual int32 GetCallStackIndex ()
 
- Protected Member Functions inherited from FExec
virtual bool Exec_Runtime (UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar)
 
virtual bool Exec_Dev (UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar)
 
virtual bool Exec_Editor (UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar)
 

Protected Attributes

TMap< const void *const, TrackedAllocationDataTrackedCurrentAllocations
 
TMap< const void *const, TrackedAllocationDataTrackedFreeAllocations
 
- Protected Attributes inherited from FMallocCallstackHandler
FMallocUsedMalloc
 
bool Initialized
 
FCriticalSection CriticalSection
 
uint32 DisabledTLS
 
FRWLock RWLock
 
TMap< FCallStackMapKey, int32CallStackMapKeyToCallStackIndexMap
 
TArray< FCallStackInfoCallStackInfoArray
 

Additional Inherited Members

- Static Public Attributes inherited from FMallocCallstackHandler
static constexpr SIZE_T MaxCallStackDepth = 64
 
static constexpr SIZE_T CallStackEntriesToSkipCount = 2
 
- Static Public Attributes inherited from FMalloc
static CORE_API TAtomic< uint64MaxSingleAlloc
 

Constructor & Destructor Documentation

◆ FMallocDoubleFreeFinder()

FMallocDoubleFreeFinder::FMallocDoubleFreeFinder ( FMalloc InMalloc)

Member Function Documentation

◆ Init()

void FMallocDoubleFreeFinder::Init ( )
virtual

Reimplemented from FMallocCallstackHandler.

◆ OverrideIfEnabled()

FMalloc * FMallocDoubleFreeFinder::OverrideIfEnabled ( FMalloc InUsedAlloc)
static

◆ TrackFree()

void FMallocDoubleFreeFinder::TrackFree ( void Ptr,
uint32  OldSize,
int32  CallStackIndex 
)
protectedvirtual

◆ TrackMalloc()

void FMallocDoubleFreeFinder::TrackMalloc ( void Ptr,
uint32  Size,
int32  CallStackIndex 
)
protectedvirtual

◆ TrackSpecial()

void FMallocDoubleFreeFinder::TrackSpecial ( void Ptr)

If you get an allocation/memory error outside of the allocator you can call this directly It will dump a callstack of the last allocator free most likely to have caused the problem to the log, if you have symbols loaded Might be useful to pass an access violation ptr to this!

Member Data Documentation

◆ TrackedCurrentAllocations

TMap<const void* const, TrackedAllocationData> FMallocDoubleFreeFinder::TrackedCurrentAllocations
protected

◆ TrackedFreeAllocations

TMap<const void* const, TrackedAllocationData> FMallocDoubleFreeFinder::TrackedFreeAllocations
protected

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