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

#include <AndroidPlatformCrashContext.h>

+ Inheritance diagram for FAndroidCrashContext:

Public Member Functions

CORE_API FAndroidCrashContext (ECrashContextType InType, const TCHAR *InErrorMessage)
 
 ~FAndroidCrashContext ()
 
void InitFromSignal (int32 InSignal, siginfo *InInfo, void *InContext, uint32 InCrashingThreadId)
 
virtual CORE_API void GetPortableCallStack (const uint64 *StackFrames, int32 NumStackFrames, TArray< FCrashStackFrame > &OutCallStack) const override
 
virtual CORE_API void AddPlatformSpecificProperties () const override
 
CORE_API void CaptureCrashInfo ()
 
CORE_API void StoreCrashInfo (bool bWriteLog) const
 
FString GetCurrentReportDirectoryPath () const
 
CORE_API void AddAndroidCrashProperty (const FString &Key, const FString &Value)
 
CORE_API void SetOverrideCallstack (const FString &OverrideCallstackIN)
 
CORE_API void DumpAllThreadCallstacks (FAsyncThreadBackTrace *BackTrace, int NumThreads) const
 
TArray< FCrashStackFrame > & GetPortableCallstack_TEMP ()
 
- 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 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 CORE_API void Initialize ()
 
static CORE_API const FString GetGlobalCrashDirectoryPath ()
 
static CORE_API void GetGlobalCrashDirectoryPath (char(&DirectoryNameOUT)[CrashReportMaxPathSize])
 
static CORE_API void GenerateReportDirectoryName (char(&DirectoryNameOUT)[CrashReportMaxPathSize])
 
static CORE_API const ANSICHARItoANSI (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
 
uint32 CrashingThreadId
 
siginfoInfo
 
voidContext
 

Static Public Attributes

static const int32 CrashReportMaxPathSize = 512
 
- 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()
 

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 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
 

Constructor & Destructor Documentation

◆ FAndroidCrashContext()

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

◆ ~FAndroidCrashContext()

FAndroidCrashContext::~FAndroidCrashContext ( )
inline

Member Function Documentation

◆ AddAndroidCrashProperty()

void FAndroidCrashContext::AddAndroidCrashProperty ( const FString &  Key,
const FString &  Value 
)

◆ AddPlatformSpecificProperties()

void FAndroidCrashContext::AddPlatformSpecificProperties ( ) const
overridevirtual

Serializes platform specific properties to the buffer.

Reimplemented from FGenericCrashContext.

◆ CaptureCrashInfo()

void FAndroidCrashContext::CaptureCrashInfo ( )

◆ DumpAllThreadCallstacks()

void FAndroidCrashContext::DumpAllThreadCallstacks ( FAsyncThreadBackTrace BackTrace,
int  NumThreads 
) const

◆ GenerateReportDirectoryName()

void FAndroidCrashContext::GenerateReportDirectoryName ( char(&)  DirectoryNameOUT[CrashReportMaxPathSize])
static

◆ GetCallstackProperty()

const TCHAR * FAndroidCrashContext::GetCallstackProperty ( ) const
protectedvirtual

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

Reimplemented from FGenericCrashContext.

◆ GetCurrentReportDirectoryPath()

FString FAndroidCrashContext::GetCurrentReportDirectoryPath ( ) const
inline

◆ GetGlobalCrashDirectoryPath() [1/2]

const FString FAndroidCrashContext::GetGlobalCrashDirectoryPath ( )
static

◆ GetGlobalCrashDirectoryPath() [2/2]

void FAndroidCrashContext::GetGlobalCrashDirectoryPath ( char(&)  DirectoryNameOUT[CrashReportMaxPathSize])
static

◆ GetPortableCallStack()

void FAndroidCrashContext::GetPortableCallStack ( const uint64 StackFrames,
int32  NumStackFrames,
TArray< FCrashStackFrame > &  OutCallStack 
) const
overridevirtual

Gets the portable callstack to a specified stack and puts it into OutCallStack

Reimplemented from FGenericCrashContext.

◆ GetPortableCallstack_TEMP()

TArray< FCrashStackFrame > & FAndroidCrashContext::GetPortableCallstack_TEMP ( )
inline

◆ InitFromSignal()

void FAndroidCrashContext::InitFromSignal ( int32  InSignal,
siginfo InInfo,
void InContext,
uint32  InCrashingThreadId 
)
inline

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

◆ Initialize()

void FAndroidCrashContext::Initialize ( )
static

◆ ItoANSI()

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

Async-safe ItoA

◆ SetOverrideCallstack()

void FAndroidCrashContext::SetOverrideCallstack ( const FString &  OverrideCallstackIN)

◆ StoreCrashInfo()

void FAndroidCrashContext::StoreCrashInfo ( bool  bWriteLog) const

Member Data Documentation

◆ Context

void* FAndroidCrashContext::Context

Thread context

◆ CrashingThreadId

uint32 FAndroidCrashContext::CrashingThreadId

Id of a thread that crashed

◆ CrashReportMaxPathSize

const int32 FAndroidCrashContext::CrashReportMaxPathSize = 512
static

◆ Info

siginfo* FAndroidCrashContext::Info

Additional signal info

◆ Signal

int32 FAndroidCrashContext::Signal

Signal number


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