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

#include <WindowsPlatformCrashContext.h>

+ Inheritance diagram for FWindowsPlatformCrashContext:

Public Member Functions

 FWindowsPlatformCrashContext (ECrashContextType InType, const TCHAR *InErrorMessage)
 
virtual CORE_API void AddPlatformSpecificProperties () const override
 
virtual CORE_API void CopyPlatformSpecificFiles (const TCHAR *OutputDirectory, void *Context) override
 
- Public Member Functions inherited from FMicrosoftPlatformCrashContext
 FMicrosoftPlatformCrashContext (ECrashContextType InType, const TCHAR *InErrorMessage)
 
CORE_API void CaptureAllThreadContexts ()
 
virtual CORE_API void SetPortableCallStack (const uint64 *StackTrace, int32 StackTraceDepth) override
 
virtual CORE_API void AddPortableThreadCallStacks (TConstArrayView< FThreadCallStack > Threads) override
 
virtual CORE_API void AddPortableThreadCallStack (uint32 ThreadId, const TCHAR *ThreadName, const uint64 *StackFrames, int32 NumStackFrames) override
 
- 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 GetPortableCallStack (const uint64 *StackFrames, int32 NumStackFrames, TArray< FCrashStackFrame > &OutCallStack) const
 
virtual CORE_API void CaptureModules ()
 
virtual CORE_API void GetModules (TArray< FStackWalkModuleInfo > &OutModules) const
 
ECrashContextType GetType () const
 

Static Public Member Functions

static CORE_API void AddOptionalAttachment (const FString &OptionalAttachmentFilepath)
 
- 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)
 

Protected Member Functions

void CopyOptionalAttachments (const TCHAR *BaseOutputDirectory) const
 
void WriteOptionalAttachmentsXML (const FString &Filepath) const
 
- Protected Member Functions inherited from FMicrosoftPlatformCrashContext
virtual CORE_API bool GetPlatformAllThreadContextsString (FString &OutStr) const override
 
- Protected Member Functions inherited from FGenericCrashContext
virtual CORE_API const TCHARGetCallstackProperty () 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()
 
- Protected Types inherited from FMicrosoftPlatformCrashContext
typedef TArray< void *, TInlineAllocator< 128 > > FModuleHandleArray
 
- Static Protected Member Functions inherited from FMicrosoftPlatformCrashContext
static CORE_API void GetProcModuleHandles (const FProcHandle &Process, FModuleHandleArray &OutHandles)
 
static CORE_API void ConvertProgramCountersToStackFrames (const FProcHandle &Process, const FModuleHandleArray &SortedModuleHandles, const uint64 *ProgramCounters, int32 NumPCs, TArray< FCrashStackFrame > &OutStackFrames)
 
static CORE_API void AddThreadContextString (uint32 CrashedThreadId, uint32 ThreadId, const FString &ThreadName, const TArray< FCrashStackFrame > &StackFrames, FString &OutStr)
 
- 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

◆ FWindowsPlatformCrashContext()

FWindowsPlatformCrashContext::FWindowsPlatformCrashContext ( ECrashContextType  InType,
const TCHAR InErrorMessage 
)
inline

Member Function Documentation

◆ AddOptionalAttachment()

CORE_API void FWindowsPlatformCrashContext::AddOptionalAttachment ( const FString &  OptionalAttachmentFilepath)
static

◆ AddPlatformSpecificProperties()

void FWindowsPlatformCrashContext::AddPlatformSpecificProperties ( ) const
overridevirtual

Serializes platform specific properties to the buffer.

Reimplemented from FGenericCrashContext.

◆ CopyOptionalAttachments()

void FWindowsPlatformCrashContext::CopyOptionalAttachments ( const TCHAR BaseOutputDirectory) const
protected

◆ CopyPlatformSpecificFiles()

void FWindowsPlatformCrashContext::CopyPlatformSpecificFiles ( const TCHAR OutputDirectory,
void Context 
)
overridevirtual

Allows platform implementations to copy files to report directory.

Reimplemented from FGenericCrashContext.

◆ WriteOptionalAttachmentsXML()

void FWindowsPlatformCrashContext::WriteOptionalAttachmentsXML ( const FString &  Filepath) const
protected

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