UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FFrame Struct Reference

#include <Stack.h>

+ Inheritance diagram for FFrame:

Public Member Functions

 FFrame (UObject *InObject, UFunction *InNode, void *InLocals, FFrame *InPreviousFrame=NULL, FField *InPropertyChainForCompiledIn=NULL)
 
virtual ~FFrame ()
 
COREUOBJECT_API void Step (UObject *Context, RESULT_DECL)
 
FORCEINLINE_DEBUGGABLE bool StepAndCheckMostRecentProperty (UObject *Context, RESULT_DECL)
 
COREUOBJECT_API void StepExplicitProperty (void *const Result, FProperty *Property)
 
template<class TProperty >
FORCEINLINE_DEBUGGABLE void StepCompiledIn (void *Result)
 
FORCEINLINE_DEBUGGABLE void StepCompiledIn (void *Result, const FFieldClass *ExpectedPropertyType)
 
template<class TProperty , typename TNativeType >
FORCEINLINE_DEBUGGABLE TNativeTypeStepCompiledInRef (void *const TemporaryBuffer)
 
virtual COREUOBJECT_API void Serialize (const TCHAR *V, ELogVerbosity::Type Verbosity, const class FName &Category) override
 
const uint8 PeekCode () const
 
void SkipCode (const int32 NumOps)
 
template<typename T >
Read ()
 
template<typename TNumericType >
TNumericType ReadInt ()
 
float ReadFloat ()
 
double ReadDouble ()
 
ScriptPointerType ReadPointer ()
 
FName ReadName ()
 
UObjectReadObject ()
 
int32 ReadWord ()
 
FPropertyReadProperty ()
 
FPropertyReadPropertyUnchecked ()
 
CodeSkipSizeType ReadCodeSkipCount ()
 
VariableSizeType ReadVariableSize (FProperty **ExpressionField)
 
COREUOBJECT_API FString GetStackTrace () const
 
COREUOBJECT_API void GetStackTrace (FStringBuilderBase &StringBuilder) const
 
COREUOBJECT_API FString GetStackDescription () const
 
COREUOBJECT_API void GetStackDescription (FStringBuilderBase &StringBuilder) const
 
- Public Member Functions inherited from FOutputDevice
CORE_API FOutputDevice ()
 
CORE_API FOutputDevice (FOutputDevice &&)
 
CORE_API FOutputDevice (const FOutputDevice &)
 
CORE_API FOutputDeviceoperator= (FOutputDevice &&)
 
CORE_API FOutputDeviceoperator= (const FOutputDevice &)
 
virtual CORE_API ~FOutputDevice ()
 
virtual void Serialize (const TCHAR *V, ELogVerbosity::Type Verbosity, const FName &Category)=0
 
virtual void Serialize (const TCHAR *V, ELogVerbosity::Type Verbosity, const FName &Category, const double Time)
 
virtual CORE_API void SerializeRecord (const UE::FLogRecord &Record)
 
virtual void Flush ()
 
virtual void TearDown ()
 
void SetSuppressEventTag (bool bInSuppressEventTag)
 
UE_FORCEINLINE_HINT bool GetSuppressEventTag () const
 
void SetAutoEmitLineTerminator (bool bInAutoEmitLineTerminator)
 
UE_FORCEINLINE_HINT bool GetAutoEmitLineTerminator () const
 
virtual void Dump (class FArchive &Ar)
 
virtual bool IsMemoryOnly () const
 
virtual bool CanBeUsedOnAnyThread () const
 
virtual bool CanBeUsedOnMultipleThreads () const
 
virtual bool CanBeUsedOnPanicThread () const
 
CORE_API void Log (const TCHAR *S)
 
CORE_API void Log (ELogVerbosity::Type Verbosity, const TCHAR *S)
 
CORE_API void Log (const FName &Category, ELogVerbosity::Type Verbosity, const TCHAR *Str)
 
CORE_API void Log (const FString &S)
 
CORE_API void Log (const FText &S)
 
CORE_API void Log (ELogVerbosity::Type Verbosity, const FString &S)
 
CORE_API void Log (const FName &Category, ELogVerbosity::Type Verbosity, const FString &S)
 
template<typename FmtType >
void Logf (const FmtType &Fmt)
 
template<typename FmtType , typename... Types>
void Logf (const FmtType &Fmt, Types... Args)
 
template<typename FmtType , typename... Types>
void Logf (ELogVerbosity::Type Verbosity, const FmtType &Fmt, Types... Args)
 
template<typename FmtType , typename... Types>
void CategorizedLogf (const FName &Category, ELogVerbosity::Type Verbosity, const FmtType &Fmt, Types... Args)
 

Static Public Member Functions

static COREUOBJECT_API void KismetExecutionMessage (const TCHAR *Message, ELogVerbosity::Type Verbosity, FName WarningId=FName())
 
static COREUOBJECT_API FString GetScriptCallstack (bool bReturnEmpty=false, bool bTopOfStackOnly=false)
 
static COREUOBJECT_API void GetScriptCallstack (FStringBuilderBase &StringBuilder, bool bReturnEmpty=false, bool bTopOfStackOnly=false)
 
static COREUOBJECT_API FFramePushThreadLocalTopStackFrame (FFrame *NewTopStackFrame)
 
static COREUOBJECT_API void PopThreadLocalTopStackFrame (FFrame *NewTopStackFrame)
 
static COREUOBJECT_API FFrameGetThreadLocalTopStackFrame ()
 

Public Attributes

UFunctionNode
 
UObjectObject
 
uint8Code
 
uint8Locals
 
FPropertyMostRecentProperty
 
uint8MostRecentPropertyAddress
 
uint8MostRecentPropertyContainer
 
FlowStackType FlowStack
 
FFramePreviousFrame
 
FOutParmRecOutParms
 
FFieldPropertyChainForCompiledIn
 
UFunctionCurrentNativeFunction
 
FFramePreviousTrackingFrame
 
bool bArrayContextFailed
 
bool bAbortingExecution
 

Additional Inherited Members

- Protected Attributes inherited from FOutputDevice
bool bSuppressEventTag
 
bool bAutoEmitLineTerminator
 

Constructor & Destructor Documentation

◆ FFrame()

FFrame::FFrame ( UObject InObject,
UFunction InNode,
void InLocals,
FFrame InPreviousFrame = NULL,
FField InPropertyChainForCompiledIn = NULL 
)
inline

◆ ~FFrame()

virtual FFrame::~FFrame ( )
inlinevirtual

Member Function Documentation

◆ GetScriptCallstack() [1/2]

FString FFrame::GetScriptCallstack ( bool  bReturnEmpty = false,
bool  bTopOfStackOnly = false 
)
static

This will return the StackTrace of the all script frames currently active

Parameters
bReturnEmptyif true, returns empty string when no script callstack found
bTopOfStackOnlyif true only returns the top of the callstack

◆ GetScriptCallstack() [2/2]

void FFrame::GetScriptCallstack ( FStringBuilderBase StringBuilder,
bool  bReturnEmpty = false,
bool  bTopOfStackOnly = false 
)
static

This will return the StackTrace of the all script frames currently active

Parameters
StringBuilderto populate
bReturnEmptyif true, returns empty string when no script callstack found
bTopOfStackOnlyif true only returns the top of the callstack

◆ GetStackDescription() [1/2]

FString FFrame::GetStackDescription ( ) const

This will return a string of the form "ScopeName.FunctionName" associated with this stack frame:

◆ GetStackDescription() [2/2]

void FFrame::GetStackDescription ( FStringBuilderBase StringBuilder) const

This will append a string of the form "ScopeName.FunctionName" associated with this stack frame

Parameters
StringBuilderto populate

◆ GetStackTrace() [1/2]

FString FFrame::GetStackTrace ( ) const

This will return the StackTrace of the current callstack from the last native entry point

◆ GetStackTrace() [2/2]

void FFrame::GetStackTrace ( FStringBuilderBase StringBuilder) const

This will return the StackTrace of the current callstack from the last native entry point

Parameters
StringBuilderto populate

◆ GetThreadLocalTopStackFrame()

COREUOBJECT_API FFrame * FFrame::GetThreadLocalTopStackFrame ( )
static

◆ KismetExecutionMessage()

void FFrame::KismetExecutionMessage ( const TCHAR Message,
ELogVerbosity::Type  Verbosity,
FName  WarningId = FName() 
)
static

◆ PeekCode()

const uint8 FFrame::PeekCode ( ) const
inline

Returns the current script op code

◆ PopThreadLocalTopStackFrame()

COREUOBJECT_API void FFrame::PopThreadLocalTopStackFrame ( FFrame NewTopStackFrame)
static

◆ PushThreadLocalTopStackFrame()

COREUOBJECT_API FFrame * FFrame::PushThreadLocalTopStackFrame ( FFrame NewTopStackFrame)
static

◆ Read()

template<typename T >
T FFrame::Read ( )
inline

◆ ReadCodeSkipCount()

CodeSkipSizeType FFrame::ReadCodeSkipCount ( )
inline

Reads a value from the bytestream, which represents the number of bytes to advance the code pointer for certain expressions.

Parameters
ExpressionFieldreceives a pointer to the field representing the expression; used by various execs to drive VM logic

Reads a value from the bytestream, which represents the number of bytes to advance the code pointer for certain expressions.

◆ ReadDouble()

double FFrame::ReadDouble ( )
inline

◆ ReadFloat()

float FFrame::ReadFloat ( )
inline

◆ ReadInt()

template<typename TNumericType >
TNumericType FFrame::ReadInt ( )
inline

◆ ReadName()

FName FFrame::ReadName ( )
inline

◆ ReadObject()

UObject * FFrame::ReadObject ( )
inline

◆ ReadPointer()

ScriptPointerType FFrame::ReadPointer ( )
inline

◆ ReadProperty()

FProperty * FFrame::ReadProperty ( )
inline

◆ ReadPropertyUnchecked()

FProperty * FFrame::ReadPropertyUnchecked ( )
inline

May return null

◆ ReadVariableSize()

VariableSizeType FFrame::ReadVariableSize ( FProperty **  ExpressionField)
inline

Reads a value from the bytestream which represents the number of bytes that should be zero'd out if a NULL context is encountered

Parameters
ExpressionFieldreceives a pointer to the field representing the expression; used by various execs to drive VM logic

◆ ReadWord()

int32 FFrame::ReadWord ( )
inline

◆ Serialize()

void FFrame::Serialize ( const TCHAR V,
ELogVerbosity::Type  Verbosity,
const class FName Category 
)
overridevirtual

◆ SkipCode()

void FFrame::SkipCode ( const int32  NumOps)
inline

Skips over the number of op codes specified by NumOps

◆ Step()

void FFrame::Step ( UObject Context,
RESULT_DECL   
)

◆ StepAndCheckMostRecentProperty()

FORCEINLINE_DEBUGGABLE bool FFrame::StepAndCheckMostRecentProperty ( UObject Context,
RESULT_DECL   
)

Convenience function that calls Step, but also returns true if both MostRecentProperty and MostRecentPropertyAddress are non-null.

◆ StepCompiledIn() [1/2]

template<class TProperty >
FORCEINLINE_DEBUGGABLE void FFrame::StepCompiledIn ( void Result)

Replacement for Step that checks the for byte code, and if none exists, then PropertyChainForCompiledIn is used. Also, makes an effort to verify that the params are in the correct order and the types are compatible.

Replacement for Step that checks the for byte code, and if none exists, then PropertyChainForCompiledIn is used. Also makes an effort to verify that the params are in the correct order and the types are compatible.

◆ StepCompiledIn() [2/2]

FORCEINLINE_DEBUGGABLE void FFrame::StepCompiledIn ( void Result,
const FFieldClass ExpectedPropertyType 
)

◆ StepCompiledInRef()

template<class TProperty , typename TNativeType >
FORCEINLINE_DEBUGGABLE TNativeType & FFrame::StepCompiledInRef ( void *const  TemporaryBuffer)

Replacement for Step that checks the for byte code, and if none exists, then PropertyChainForCompiledIn is used. Also, makes an effort to verify that the params are in the correct order and the types are compatible.

◆ StepExplicitProperty()

void FFrame::StepExplicitProperty ( void *const  Result,
FProperty Property 
)

Replacement for Step that uses an explicitly specified property to unpack arguments

Member Data Documentation

◆ bAbortingExecution

bool FFrame::bAbortingExecution

If this flag gets set (usually from throwing a EBlueprintExceptionType::AbortExecution exception), execution shall immediately stop and return

◆ bArrayContextFailed

bool FFrame::bArrayContextFailed

◆ Code

uint8* FFrame::Code

◆ CurrentNativeFunction

UFunction* FFrame::CurrentNativeFunction

Currently executed native function

◆ FlowStack

FlowStackType FFrame::FlowStack

The execution flow stack for compiled Kismet code

◆ Locals

uint8* FFrame::Locals

◆ MostRecentProperty

FProperty* FFrame::MostRecentProperty

◆ MostRecentPropertyAddress

uint8* FFrame::MostRecentPropertyAddress

◆ MostRecentPropertyContainer

uint8* FFrame::MostRecentPropertyContainer

◆ Node

UFunction* FFrame::Node

◆ Object

UObject* FFrame::Object

◆ OutParms

FOutParmRec* FFrame::OutParms

contains information on any out parameters

◆ PreviousFrame

FFrame* FFrame::PreviousFrame

Previous frame on the stack

◆ PreviousTrackingFrame

FFrame* FFrame::PreviousTrackingFrame

Previous tracking frame

◆ PropertyChainForCompiledIn

FField* FFrame::PropertyChainForCompiledIn

If a class is compiled in then this is set to the property chain for compiled-in functions. In that case, we follow the links to setup the args instead of executing by code.


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