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

#include <ApplePlatformCrashContext.h>

+ Inheritance diagram for FApplePlatformCrashContext:

Public Member Functions

 FApplePlatformCrashContext (ECrashContextType InType, const TCHAR *InErrorMessage)
 
 ~FApplePlatformCrashContext ()
 
void InitFromSignal (int32 InSignal, siginfo_t *InInfo, void *InContext)
 
int32 ReportCrash (void) const
 
- Public Member Functions inherited from FGenericCrashContext
CORE_API FGenericCrashContext (ECrashContextType InType, const TCHAR *ErrorMessage)
 
virtual ~FGenericCrashContext ()
 
CORE_API void SerializeContentToBuffer () const
 
const FString & GetBuffer () const
 
CORE_API void GetUniqueCrashName (TCHAR *GUIDBuffer, int32 BufferSize) const
 
CORE_API const bool IsFullCrashDump () const
 
virtual CORE_API void SerializeAsXML (const TCHAR *Filename) const
 
template<typename Type >
void AddCrashProperty (const TCHAR *PropertyName, const Type &Value) const
 
void SetCrashedProcess (const FProcHandle &Process)
 
void SetCrashedThreadId (uint32 InId)
 
CORE_API void SetNumMinidumpFramesToIgnore (int32 InNumMinidumpFramesToIgnore)
 
CORE_API void CapturePortableCallStack (void *ErrorProgramCounter, void *Context)
 
CORE_API void CaptureThreadPortableCallStack (const uint64 ThreadId, void *Context)
 
CORE_API void CapturePortableCallStack (int32 NumStackFramesToIgnore, void *Context)
 
virtual CORE_API void SetPortableCallStack (const uint64 *StackFrames, int32 NumStackFrames)
 
virtual CORE_API void GetPortableCallStack (const uint64 *StackFrames, int32 NumStackFrames, TArray< FCrashStackFrame > &OutCallStack) const
 
virtual CORE_API void CaptureModules ()
 
virtual CORE_API void GetModules (TArray< FStackWalkModuleInfo > &OutModules) const
 
virtual CORE_API void AddPortableThreadCallStacks (TConstArrayView< FThreadCallStack > Threads)
 
virtual CORE_API void AddPortableThreadCallStack (uint32 ThreadId, const TCHAR *ThreadName, const uint64 *StackFrames, int32 NumStackFrames)
 
virtual CORE_API void CopyPlatformSpecificFiles (const TCHAR *OutputDirectory, void *Context)
 
ECrashContextType GetType () const
 

Static Public Member Functions

static void CreateExceptionInfoString (int32 Signal, siginfo_t *Info)
 
static void ConvertMinidump (char const *OutputPath, char const *InputPath)
 
static void WriteLine (int ReportFile, const ANSICHAR *Line=NULL)
 
static void WriteUTF16String (int ReportFile, const TCHAR *UTFString4BytesChar, uint32 NumChars)
 
static void WriteUTF16String (int ReportFile, const TCHAR *UTFString4BytesChar)
 
static void WriteLine (int ReportFile, const TCHAR *Line)
 
static ANSICHARItoANSI (uint64 Val, uint64 Base, uint32 Len=0)
 
static TCHARItoTCHAR (uint64 Val, uint64 Base, uint32 Len=0)
 
- Static Public Member Functions inherited from FGenericCrashContext
static CORE_API void Initialize ()
 
static CORE_API void InitializeFromContext (const FSessionContext &Context, const TCHAR *EnabledPlugins, const TCHAR *EngineData, const TCHAR *GameData, const TCHAR *FilePathData, const FGPUBreadcrumbsSharedContext *GPUBreadcrumbs)
 
static CORE_API const FSessionContextGetCachedSessionContext ()
 
static CORE_API FString GetGameName ()
 
static bool IsInitalized ()
 
static bool IsOutOfProcessCrashReporter ()
 
static uint32 GetOutOfProcessCrashReporterProcessId ()
 
static void SetOutOfProcessCrashReporterPid (uint32 ProcessId)
 
static CORE_API void SetOutOfProcessCrashReporterExitCode (int32 ExitCode)
 
static CORE_API TOptional< int32GetOutOfProcessCrashReporterExitCode ()
 
static CORE_API FString GetTempSessionContextFilePath (uint64 ProcessID)
 
static CORE_API void CleanupTempSessionContextFiles (const FTimespan &ExpirationAge)
 
static CORE_API void SerializeSessionContext (FString &Buffer)
 
template<typename Type >
static void AddCrashProperty (FString &Buffer, const TCHAR *PropertyName, const Type &Value)
 
static CORE_API void AppendEscapedXMLString (FString &OutBuffer, FStringView Text)
 
static CORE_API void AppendEscapedXMLString (FStringBuilderBase &OutBuffer, FStringView Text)
 
static CORE_API void AppendPortableCallstack (FString &OutBuffer, TConstArrayView< FCrashStackFrame > StackFrames)
 
static CORE_API FString UnescapeXMLString (const FString &Text)
 
static CORE_API const TCHARGetCrashTypeString (ECrashContextType Type)
 
static CORE_API FString GetCrashGameName ()
 
static CORE_API const TCHARGetCrashConfigFilePath ()
 
static CORE_API const TCHARGetCrashConfigFolder ()
 
static CORE_API void PurgeOldCrashConfig ()
 
static CORE_API void SetEpicAccountId (const FString &EpicAccountId)
 
static CORE_API void ResetEngineData ()
 
static FEngineDataResetDelegateOnEngineDataResetDelegate ()
 
static CORE_API void SetEngineData (const FString &Key, const FString &Value)
 
static CORE_API void SetGPUBreadcrumbs (FGPUBreadcrumbCrashData &&Data)
 
static FEngineDataSetDelegateOnEngineDataSetDelegate ()
 
static CORE_API const TMap< FString, FString > & GetEngineData ()
 
static CORE_API void ResetGameData ()
 
static FGameDataResetDelegateOnGameDataResetDelegate ()
 
static CORE_API void SetGameData (const FString &Key, const FString &Value)
 
static FGameDataSetDelegateOnGameDataSetDelegate ()
 
static CORE_API const TMap< FString, FString > & GetGameData ()
 
static CORE_API void AddPlugin (const FString &PluginDesc)
 
static CORE_API void AddFile (const FString &AbsoluteSourcePath)
 
static CORE_API FString DumpLog (const FString &CrashFolderAbsolute)
 
static CORE_API void DumpAdditionalContext (const TCHAR *CrashFolderAbsolute)
 
static CORE_API void CopySharedCrashContext (FSharedCrashContext &Dst)
 
static CORE_API void SetMemoryStats (const FPlatformMemoryStats &MemoryStats)
 
static CORE_API void SetAnticheatProvider (const FString &AnticheatProvider)
 
static CORE_API void OnThreadStuck (uint32 ThreadId)
 
static CORE_API void OnThreadUnstuck (uint32 ThreadId)
 
static CORE_API bool CreateCrashReportDirectory (const TCHAR *CrashGUIDRoot, int32 CrashIndex, FString &OutCrashDirectoryAbsolute)
 
static CORE_API void SetEngineExit (bool bIsRequestExit)
 
static FAdditionalCrashContextDelegateOnAdditionalCrashContextDelegate ()
 
static CORE_API void CleanupPlatformSpecificFiles ()
 
static bool IsTypeContinuable (ECrashContextType Type)
 
static CORE_API void SetDeploymentName (const FString &EpicApp)
 
static CORE_API const TCHARGetDeploymentName ()
 
static CORE_API void SetCrashTrigger (ECrashTrigger Type)
 
static CORE_API void AddHeader (FString &Buffer)
 
static CORE_API void AddFooter (FString &Buffer)
 
static CORE_API void BeginSection (FString &Buffer, const TCHAR *SectionName)
 
static CORE_API void EndSection (FString &Buffer, const TCHAR *SectionName)
 
static CORE_API void AddSection (FString &Buffer, const TCHAR *SectionName, const FString &SectionContent)
 

Public Attributes

int32 Signal
 
siginfo_tInfo
 
ucontext_tContext
 
voidErrorFrame = nullptr
 
char SignalDescription [128]
 
char MinidumpCallstackInfo [16384]
 
TCHAR CallstackProperty [16384]
 

Protected Member Functions

virtual CORE_API const TCHARGetCallstackProperty () const
 
- Protected Member Functions inherited from FGenericCrashContext
virtual bool GetPlatformAllThreadContextsString (FString &OutStr) const
 

Additional Inherited Members

- Static Public Attributes inherited from FGenericCrashContext
static CORE_API const ANSICHAR *const CrashContextRuntimeXMLNameA = "CrashContext.runtime-xml"
 
static CORE_API const TCHAR *const CrashContextRuntimeXMLNameW = TEXT( "CrashContext.runtime-xml" )
 
static CORE_API const ANSICHAR *const CrashConfigFileNameA = "CrashReportClient.ini"
 
static CORE_API const TCHAR *const CrashConfigFileNameW = TEXT("CrashReportClient.ini")
 
static CORE_API const TCHAR *const CrashConfigExtension = TEXT(".ini")
 
static CORE_API const TCHAR *const ConfigSectionName = TEXT("CrashReportClient")
 
static CORE_API const TCHAR *const CrashConfigPurgeDays = TEXT("CrashConfigPurgeDays")
 
static CORE_API const TCHAR *const CrashGUIDRootPrefix = TEXT("UECC-")
 
static CORE_API const TCHAR *const CrashReportOptionalAttachmentsDirName = TEXT("OptionalAttachments")
 
static CORE_API const TCHAR *const CrashContextExtension = TEXT(".runtime-xml")
 
static CORE_API const TCHAR *const RuntimePropertiesTag = TEXT( "RuntimeProperties" )
 
static CORE_API const TCHAR *const DeploymentNameTag = TEXT( "DeploymentName" )
 
static CORE_API const TCHAR *const PlatformPropertiesTag = TEXT( "PlatformProperties" )
 
static CORE_API const TCHAR *const EngineDataTag = TEXT( "EngineData" )
 
static CORE_API const TCHAR *const GameDataTag = TEXT( "GameData" )
 
static CORE_API const TCHAR *const RequestDataTag = TEXT( "RequestData" )
 
static CORE_API const TCHAR *const GameNameTag = TEXT( "GameName" )
 
static CORE_API const TCHAR *const EnabledPluginsTag = TEXT("EnabledPlugins")
 
static CORE_API const TCHAR *const UEMinidumpName = TEXT( "UEMinidump.dmp" )
 
static CORE_API const TCHAR *const NewLineTag = TEXT( "&nl;" )
 
static CORE_API const TCHAR *const CrashVersionTag = TEXT("CrashVersion")
 
static CORE_API const TCHAR *const ExecutionGuidTag = TEXT("ExecutionGuid")
 
static CORE_API const TCHAR *const CrashGuidTag = TEXT("CrashGUID")
 
static CORE_API const TCHAR *const IsEnsureTag = TEXT("IsEnsure")
 
static CORE_API const TCHAR *const IsStallTag = TEXT("IsStall")
 
static CORE_API const TCHAR *const IsAssertTag = TEXT("IsAssert")
 
static CORE_API const TCHAR *const CrashTypeTag = TEXT("CrashType")
 
static CORE_API const TCHAR *const ErrorMessageTag = TEXT("ErrorMessage")
 
static CORE_API const TCHAR *const CrashReporterMessageTag = TEXT("CrashReporterMessage")
 
static CORE_API const TCHAR *const AttendedStatusTag = TEXT("CrashReporterMessage")
 
static CORE_API const TCHAR *const SecondsSinceStartTag = TEXT("SecondsSinceStart")
 
static CORE_API const TCHAR *const BuildVersionTag = TEXT("BuildVersion")
 
static CORE_API const TCHAR *const CallStackTag = TEXT("CallStack")
 
static CORE_API const TCHAR *const PortableCallStackTag = TEXT("PCallStack")
 
static CORE_API const TCHAR *const PortableCallStackHashTag = TEXT("PCallStackHash")
 
static CORE_API const TCHAR *const IsRequestingExitTag = TEXT("IsRequestingExit")
 
static CORE_API const TCHAR *const LogFilePathTag = TEXT("LogFilePath")
 
static CORE_API const TCHAR *const ProcessIdTag = TEXT("ProcessId")
 
static CORE_API const TCHAR *const IsInternalBuildTag = TEXT("IsInternalBuild")
 
static CORE_API const TCHAR *const IsPerforceBuildTag = TEXT("IsPerforceBuild")
 
static CORE_API const TCHAR *const IsWithDebugInfoTag = TEXT("IsWithDebugInfo")
 
static CORE_API const TCHAR *const IsSourceDistributionTag = TEXT("IsSourceDistribution")
 
static constexpr int32 CrashGUIDLength = 128
 
static CORE_API const TCHAR *const CrashTypeCrash = TEXT("Crash")
 
static CORE_API const TCHAR *const CrashTypeAssert = TEXT("Assert")
 
static CORE_API const TCHAR *const CrashTypeEnsure = TEXT("Ensure")
 
static CORE_API const TCHAR *const CrashTypeStall = TEXT("Stall")
 
static CORE_API const TCHAR *const CrashTypeGPU = TEXT("GPUCrash")
 
static CORE_API const TCHAR *const CrashTypeHang = TEXT("Hang")
 
static CORE_API const TCHAR *const CrashTypeAbnormalShutdown = TEXT("AbnormalShutdown")
 
static CORE_API const TCHAR *const CrashTypeOutOfMemory = TEXT("OutOfMemory")
 
static CORE_API const TCHAR *const CrashTypeVerseRuntimeError = TEXT("VerseRuntimeError")
 
static CORE_API const TCHAR *const EngineModeExUnknown = TEXT("Unset")
 
static CORE_API const TCHAR *const EngineModeExDirty = TEXT("Dirty")
 
static CORE_API const TCHAR *const EngineModeExVanilla = TEXT("Vanilla")
 
static CORE_API const FGuid ExecutionGuid = FGuid::NewGuid()
 
- Static Protected Member Functions inherited from FGenericCrashContext
static CORE_API const FString * GetEngineData (const FString &Key)
 
static CORE_API const FString * GetGameData (const FString &Key)
 
static CORE_API FString GenerateNewCrashGuidBase ()
 
- Protected Attributes inherited from FGenericCrashContext
FProcHandle ProcessHandle
 
ECrashContextType Type
 
uint32 CrashedThreadId
 
const TCHARErrorMessage
 
int NumMinidumpFramesToIgnore
 
TArray< FCrashStackFrameCallStack
 
TArray< FThreadStackFramesThreadCallStacks
 
TArray< FStackWalkModuleInfoModulesInfo
 

Detailed Description

Declaration for common crash context implementation for Apple platforms.

Constructor & Destructor Documentation

◆ FApplePlatformCrashContext()

FApplePlatformCrashContext::FApplePlatformCrashContext ( ECrashContextType  InType,
const TCHAR InErrorMessage 
)

◆ ~FApplePlatformCrashContext()

FApplePlatformCrashContext::~FApplePlatformCrashContext ( )

Member Function Documentation

◆ ConvertMinidump()

void FApplePlatformCrashContext::ConvertMinidump ( char const *  OutputPath,
char const *  InputPath 
)
static

Converts the PLCrashReporter minidump

◆ CreateExceptionInfoString()

void FApplePlatformCrashContext::CreateExceptionInfoString ( int32  Signal,
siginfo_t Info 
)
static

Generates a string representation for the execption/signal Info.

◆ GetCallstackProperty()

const TCHAR * FApplePlatformCrashContext::GetCallstackProperty ( ) const
protectedvirtual

Allow platform implementations to provide a callstack property. Primarily used when non-native code triggers a crash.

Reimplemented from FGenericCrashContext.

◆ InitFromSignal()

void FApplePlatformCrashContext::InitFromSignal ( int32  InSignal,
siginfo_t InInfo,
void InContext 
)

Inits the crash context from data provided by a signal handler.

Parameters
InSignalnumber (SIGSEGV, etc)
InInfoadditional info (e.g. address we tried to read, etc)
InContextthread context

◆ ItoANSI()

ANSICHAR * FApplePlatformCrashContext::ItoANSI ( uint64  Val,
uint64  Base,
uint32  Len = 0 
)
static

Async-safe ItoA

◆ ItoTCHAR()

TCHAR * FApplePlatformCrashContext::ItoTCHAR ( uint64  Val,
uint64  Base,
uint32  Len = 0 
)
static

Async-safe ItoT

◆ ReportCrash()

int32 FApplePlatformCrashContext::ReportCrash ( void  ) const

Initialise context for reporting crash.

◆ WriteLine() [1/2]

void FApplePlatformCrashContext::WriteLine ( int  ReportFile,
const ANSICHAR Line = NULL 
)
static

Write a line of UTF-8 to a file

◆ WriteLine() [2/2]

void FApplePlatformCrashContext::WriteLine ( int  ReportFile,
const TCHAR Line 
)
static

Writes UTF-16 line to a file

◆ WriteUTF16String() [1/2]

void FApplePlatformCrashContext::WriteUTF16String ( int  ReportFile,
const TCHAR UTFString4BytesChar 
)
static

Serializes UTF string to UTF-16

◆ WriteUTF16String() [2/2]

void FApplePlatformCrashContext::WriteUTF16String ( int  ReportFile,
const TCHAR UTFString4BytesChar,
uint32  NumChars 
)
static

Serializes UTF string to UTF-16

Member Data Documentation

◆ CallstackProperty

TCHAR FApplePlatformCrashContext::CallstackProperty[16384]

To be returned by GetCallstackProperty()

◆ Context

ucontext_t* FApplePlatformCrashContext::Context

Thread context

◆ ErrorFrame

void* FApplePlatformCrashContext::ErrorFrame = nullptr

The PC of where the error being reported occurred. This is used to figure out the number of frames to ignore

◆ Info

siginfo_t* FApplePlatformCrashContext::Info

Additional signal info

◆ MinidumpCallstackInfo

char FApplePlatformCrashContext::MinidumpCallstackInfo[16384]

Memory reserved for minidump-style callstack info

◆ Signal

int32 FApplePlatformCrashContext::Signal

Signal number

◆ SignalDescription

char FApplePlatformCrashContext::SignalDescription[128]

Memory reserved for "exception" (signal) info


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