Ark Server API (ASA) - Wiki
Loading...
Searching...
No Matches
FGenericCrashContext Struct Reference

#include <GenericPlatformCrashContext.h>

+ Inheritance diagram for FGenericCrashContext:
+ Collaboration diagram for FGenericCrashContext:

Public Member Functions

 FGenericCrashContext (ECrashContextType InType, const TCHAR *ErrorMessage)
 
virtual ~FGenericCrashContext ()
 
void SerializeContentToBuffer () const
 
const FStringGetBuffer () const
 
void GetUniqueCrashName (TCHAR *GUIDBuffer, int32 BufferSize) const
 
const bool IsFullCrashDump () const
 
virtual 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)
 
void SetNumMinidumpFramesToIgnore (int32 InNumMinidumpFramesToIgnore)
 
void CapturePortableCallStack (void *ErrorProgramCounter, void *Context)
 
void CaptureThreadPortableCallStack (const uint64 ThreadId, void *Context)
 
void CapturePortableCallStack (int32 NumStackFramesToIgnore, void *Context)
 
virtual void SetPortableCallStack (const uint64 *StackFrames, int32 NumStackFrames)
 
virtual void GetPortableCallStack (const uint64 *StackFrames, int32 NumStackFrames, TArray< FCrashStackFrame > &OutCallStack) const
 
virtual void CaptureModules ()
 
virtual void GetModules (TArray< FStackWalkModuleInfo > &OutModules) const
 
virtual void AddPortableThreadCallStack (uint32 ThreadId, const TCHAR *ThreadName, const uint64 *StackFrames, int32 NumStackFrames)
 
virtual void CopyPlatformSpecificFiles (const TCHAR *OutputDirectory, void *Context)
 
ECrashContextType GetType () const
 

Static Public Member Functions

static void Initialize ()
 
static void InitializeFromContext (const FSessionContext &Context, const TCHAR *EnabledPlugins, const TCHAR *EngineData, const TCHAR *GameData)
 
static bool IsInitalized ()
 
static bool IsOutOfProcessCrashReporter ()
 
static uint32 GetOutOfProcessCrashReporterProcessId ()
 
static void SetOutOfProcessCrashReporterPid (uint32 ProcessId)
 
static void SetOutOfProcessCrashReporterExitCode (int32 ExitCode)
 
static TOptional< int32GetOutOfProcessCrashReporterExitCode ()
 
static FString GetTempSessionContextFilePath (uint64 ProcessID)
 
static void CleanupTempSessionContextFiles (const FTimespan &ExpirationAge)
 
static void SerializeSessionContext (FString &Buffer)
 
static void AppendEscapedXMLString (FString &OutBuffer, FStringView Text)
 
static void AppendEscapedXMLString (FStringBuilderBase &OutBuffer, FStringView Text)
 
static void AppendPortableCallstack (FString &OutBuffer, TConstArrayView< FCrashStackFrame > StackFrames)
 
static FString UnescapeXMLString (const FString &Text)
 
static const TCHAR * GetCrashTypeString (ECrashContextType Type)
 
static FString GetCrashGameName ()
 
static const TCHAR * GetCrashConfigFilePath ()
 
static const TCHAR * GetCrashConfigFolder ()
 
static void PurgeOldCrashConfig ()
 
static void ResetEngineData ()
 
static void SetEngineData (const FString &Key, const FString &Value)
 
static void ResetGameData ()
 
static void SetGameData (const FString &Key, const FString &Value)
 
static void AddPlugin (const FString &PluginDesc)
 
static FString DumpLog (const FString &CrashFolderAbsolute)
 
static void DumpAdditionalContext (const TCHAR *CrashFolderAbsolute)
 
static void CopySharedCrashContext (FSharedCrashContext &Dst)
 
static void SetMemoryStats (const FPlatformMemoryStats &MemoryStats)
 
static bool CreateCrashReportDirectory (const TCHAR *CrashGUIDRoot, int32 CrashIndex, FString &OutCrashDirectoryAbsolute)
 
static void SetEngineExit (bool bIsRequestExit)
 
static FAdditionalCrashContextDelegateOnAdditionalCrashContextDelegate ()
 
static void CleanupPlatformSpecificFiles ()
 
static bool IsTypeContinuable (ECrashContextType Type)
 
static void SetDeploymentName (const FString &EpicApp)
 
static void SetCrashTrigger (ECrashTrigger Type)
 

Static Public Attributes

static const ANSICHAR *const CrashContextRuntimeXMLNameA
 
static const TCHAR *const CrashContextRuntimeXMLNameW
 
static const ANSICHAR *const CrashConfigFileNameA
 
static const TCHAR *const CrashConfigFileNameW
 
static const TCHAR *const CrashConfigExtension
 
static const TCHAR *const ConfigSectionName
 
static const TCHAR *const CrashConfigPurgeDays
 
static const TCHAR *const CrashGUIDRootPrefix
 
static const TCHAR *const CrashContextExtension
 
static const TCHAR *const RuntimePropertiesTag
 
static const TCHAR *const PlatformPropertiesTag
 
static const TCHAR *const EngineDataTag
 
static const TCHAR *const GameDataTag
 
static const TCHAR *const EnabledPluginsTag
 
static const TCHAR *const UEMinidumpName
 
static const TCHAR *const NewLineTag
 
static constexpr int32 CrashGUIDLength = 128
 
static const TCHAR *const CrashTypeCrash
 
static const TCHAR *const CrashTypeAssert
 
static const TCHAR *const CrashTypeEnsure
 
static const TCHAR *const CrashTypeStall
 
static const TCHAR *const CrashTypeGPU
 
static const TCHAR *const CrashTypeHang
 
static const TCHAR *const CrashTypeAbnormalShutdown
 
static const TCHAR *const CrashTypeOutOfMemory
 
static const TCHAR *const EngineModeExUnknown
 
static const TCHAR *const EngineModeExDirty
 
static const TCHAR *const EngineModeExVanilla
 
static const FGuid ExecutionGuid
 

Protected Member Functions

virtual bool GetPlatformAllThreadContextsString (FString &OutStr) const
 
virtual const TCHAR * GetCallstackProperty () const
 

Static Protected Member Functions

static const FStringGetEngineData (const FString &Key)
 
static const FStringGetGameData (const FString &Key)
 

Protected Attributes

FProcHandle ProcessHandle
 
ECrashContextType Type
 
uint32 CrashedThreadId
 
const TCHAR * ErrorMessage
 
int NumMinidumpFramesToIgnore
 
TArray< FCrashStackFrameCallStack
 
TArray< FThreadStackFramesThreadCallStacks
 
TArray< FStackWalkModuleInfoModulesInfo
 

Private Member Functions

virtual void AddPlatformSpecificProperties () const
 
void AddPortableCallStack () const
 
void AddPortableCallStackHash () const
 
void AddModules () const
 
 FGenericCrashContext (const FGenericCrashContext &)=delete
 
FGenericCrashContextoperator= (const FGenericCrashContext &)=delete
 

Static Private Member Functions

static void SerializeTempCrashContextToFile ()
 
static void SerializeUserSettings (FString &Buffer)
 
static void AddCrashPropertyInternal (FString &Buffer, FStringView PropertyName, FStringView PropertyValue)
 
template<typename Type >
static void AddCrashPropertyInternal (FString &Buffer, FStringView PropertyName, const Type &Value)
 
static void AddHeader (FString &Buffer)
 
static void AddFooter (FString &Buffer)
 
static void BeginSection (FString &Buffer, const TCHAR *SectionName)
 
static void EndSection (FString &Buffer, const TCHAR *SectionName)
 
static void InitializeFromConfig ()
 
static void UpdateLocalizedStrings ()
 

Private Attributes

FString CommonBuffer
 
int32 CrashContextIndex
 

Static Private Attributes

static bool bIsInitialized
 
static uint32 OutOfProcessCrashReporterPid
 
static volatile int64 OutOfProcessCrashReporterExitCode
 
static int32 StaticCrashContextIndex
 
static FAdditionalCrashContextDelegate AdditionalCrashContextDelegate
 

Detailed Description

Contains a runtime crash's properties that are common for all platforms. This may change in the future.

Definition at line 266 of file GenericPlatformCrashContext.h.

Constructor & Destructor Documentation

◆ FGenericCrashContext() [1/2]

FGenericCrashContext::FGenericCrashContext ( ECrashContextType InType,
const TCHAR * ErrorMessage )

Default constructor. Optionally pass a process handle if building a crash context for a process other then current.

+ Here is the caller graph for this function:

◆ ~FGenericCrashContext()

virtual FGenericCrashContext::~FGenericCrashContext ( )
inlinevirtual

Definition at line 366 of file GenericPlatformCrashContext.h.

◆ FGenericCrashContext() [2/2]

FGenericCrashContext::FGenericCrashContext ( const FGenericCrashContext & )
privatedelete

Member Function Documentation

◆ AddCrashProperty()

template<typename Type >
void FGenericCrashContext::AddCrashProperty ( const TCHAR * PropertyName,
const Type & Value ) const
inline

Definition at line 405 of file GenericPlatformCrashContext.h.

◆ AddCrashPropertyInternal() [1/2]

template<typename Type >
static void FGenericCrashContext::AddCrashPropertyInternal ( FString & Buffer,
FStringView PropertyName,
const Type & Value )
inlinestaticprivate

Writes a common property to the buffer.

Definition at line 599 of file GenericPlatformCrashContext.h.

◆ AddCrashPropertyInternal() [2/2]

static void FGenericCrashContext::AddCrashPropertyInternal ( FString & Buffer,
FStringView PropertyName,
FStringView PropertyValue )
staticprivate

Writes a common property to the buffer.

◆ AddFooter()

static void FGenericCrashContext::AddFooter ( FString & Buffer)
staticprivate

Writes footer to the buffer.

◆ AddHeader()

static void FGenericCrashContext::AddHeader ( FString & Buffer)
staticprivate

Writes header information to the buffer.

◆ AddModules()

void FGenericCrashContext::AddModules ( ) const
private

Add module/pdb information to the crash report xml

◆ AddPlatformSpecificProperties()

virtual void FGenericCrashContext::AddPlatformSpecificProperties ( ) const
privatevirtual

Serializes platform specific properties to the buffer.

Reimplemented in FWindowsPlatformCrashContext.

◆ AddPlugin()

static void FGenericCrashContext::AddPlugin ( const FString & PluginDesc)
static

Adds a plugin descriptor string to the enabled plugins list in the crash context

◆ AddPortableCallStack()

void FGenericCrashContext::AddPortableCallStack ( ) const
private

Add callstack information to the crash report xml

◆ AddPortableCallStackHash()

void FGenericCrashContext::AddPortableCallStackHash ( ) const
private

Produces a hash based on the offsets of the portable callstack and adds it to the xml

◆ AddPortableThreadCallStack()

virtual void FGenericCrashContext::AddPortableThreadCallStack ( uint32 ThreadId,
const TCHAR * ThreadName,
const uint64 * StackFrames,
int32 NumStackFrames )
virtual

Adds a portable callstack for a thread

Reimplemented in FMicrosoftPlatformCrashContext.

◆ AppendEscapedXMLString() [1/2]

static void FGenericCrashContext::AppendEscapedXMLString ( FString & OutBuffer,
FStringView Text )
static

Escapes and appends specified text to XML string

◆ AppendEscapedXMLString() [2/2]

static void FGenericCrashContext::AppendEscapedXMLString ( FStringBuilderBase & OutBuffer,
FStringView Text )
static

◆ AppendPortableCallstack()

static void FGenericCrashContext::AppendPortableCallstack ( FString & OutBuffer,
TConstArrayView< FCrashStackFrame > StackFrames )
static

◆ BeginSection()

static void FGenericCrashContext::BeginSection ( FString & Buffer,
const TCHAR * SectionName )
staticprivate

◆ CaptureModules()

virtual void FGenericCrashContext::CaptureModules ( )
virtual

Store info about loaded modules

◆ CapturePortableCallStack() [1/2]

void FGenericCrashContext::CapturePortableCallStack ( int32 NumStackFramesToIgnore,
void * Context )

◆ CapturePortableCallStack() [2/2]

void FGenericCrashContext::CapturePortableCallStack ( void * ErrorProgramCounter,
void * Context )

Generate raw call stack for crash report (image base + offset) for the calling thread

Parameters
ErrorProgramCounterThe program counter of where the occur occurred in the callstack being captured
ContextOptional thread context information

◆ CaptureThreadPortableCallStack()

void FGenericCrashContext::CaptureThreadPortableCallStack ( const uint64 ThreadId,
void * Context )

Generate raw call stack for crash report (image base + offset) for a different thread

Parameters
InThreadIdThe thread id of the thread to capture the callstack for
ContextOptional thread context information

◆ CleanupPlatformSpecificFiles()

static void FGenericCrashContext::CleanupPlatformSpecificFiles ( )
static

Cleanup platform specific files - called on startup, implemented per platform

◆ CleanupTempSessionContextFiles()

static void FGenericCrashContext::CleanupTempSessionContextFiles ( const FTimespan & ExpirationAge)
static

Clean up expired context files that were left-over on the user disks (because the consumer crashed and/or failed to delete it).

◆ CopyPlatformSpecificFiles()

virtual void FGenericCrashContext::CopyPlatformSpecificFiles ( const TCHAR * OutputDirectory,
void * Context )
virtual

Allows platform implementations to copy files to report directory.

Reimplemented in FWindowsPlatformCrashContext.

◆ CopySharedCrashContext()

static void FGenericCrashContext::CopySharedCrashContext ( FSharedCrashContext & Dst)
static

Initializes a shared crash context from current state. Will not set all fields in Dst.

◆ CreateCrashReportDirectory()

static bool FGenericCrashContext::CreateCrashReportDirectory ( const TCHAR * CrashGUIDRoot,
int32 CrashIndex,
FString & OutCrashDirectoryAbsolute )
static

Attempts to create the output report directory.

◆ DumpAdditionalContext()

static void FGenericCrashContext::DumpAdditionalContext ( const TCHAR * CrashFolderAbsolute)
static

Collects additional crash context providers. See FAdditionalCrashContextStack.

◆ DumpLog()

static FString FGenericCrashContext::DumpLog ( const FString & CrashFolderAbsolute)
static

Flushes the logs. In the case of in memory logs is used on this configuration, dumps them to file. Returns the name of the file

◆ EndSection()

static void FGenericCrashContext::EndSection ( FString & Buffer,
const TCHAR * SectionName )
staticprivate

◆ GetBuffer()

const FString & FGenericCrashContext::GetBuffer ( ) const
inline
Returns
the buffer containing serialized data.

Definition at line 380 of file GenericPlatformCrashContext.h.

◆ GetCallstackProperty()

virtual const TCHAR * FGenericCrashContext::GetCallstackProperty ( ) const
protectedvirtual

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

◆ GetCrashConfigFilePath()

static const TCHAR * FGenericCrashContext::GetCrashConfigFilePath ( )
static

Helper to get the crash report client config filepath saved by this instance and copied to each crash report folder.

◆ GetCrashConfigFolder()

static const TCHAR * FGenericCrashContext::GetCrashConfigFolder ( )
static

Helper to get the crash report client config folder used by GetCrashConfigFilePath().

◆ GetCrashGameName()

static FString FGenericCrashContext::GetCrashGameName ( )
static

Get the Game Name of the crash

◆ GetCrashTypeString()

static const TCHAR * FGenericCrashContext::GetCrashTypeString ( ECrashContextType Type)
static

Helper to get the standard string for the crash type based on crash event bool values.

◆ GetEngineData()

static const FString * FGenericCrashContext::GetEngineData ( const FString & Key)
staticprotected

Get arbitrary engine data from the crash context

◆ GetGameData()

static const FString * FGenericCrashContext::GetGameData ( const FString & Key)
staticprotected

Get arbitrary game data from the crash context

◆ GetModules()

virtual void FGenericCrashContext::GetModules ( TArray< FStackWalkModuleInfo > & OutModules) const
virtual

Gets info about loaded modules and stores it in the given array

◆ GetOutOfProcessCrashReporterExitCode()

static TOptional< int32 > FGenericCrashContext::GetOutOfProcessCrashReporterExitCode ( )
static

Return the out-of-process crash reporter exit code if available. The exit code is available if crash reporter process died while the application it monitors was still running. Then engine periodically poll the health of the crash reporter process and try to read its exit code if it unexpectedly died.

Note
This function is useful to try diagnose why the crash reporter died (crashed/killed/asserted) and gather data for the analytics.

◆ GetOutOfProcessCrashReporterProcessId()

static uint32 FGenericCrashContext::GetOutOfProcessCrashReporterProcessId ( )
inlinestatic
Returns
a non-zero value if crash reporter process is used to monitor the session, capture the call stack and write the minidump, otherwise, this is done inside the crashing process.

Definition at line 332 of file GenericPlatformCrashContext.h.

◆ GetPlatformAllThreadContextsString()

virtual bool FGenericCrashContext::GetPlatformAllThreadContextsString ( FString & OutStr) const
inlineprotectedvirtual

@OutStr - a stream of Thread XML elements containing info (e.g. callstack) specific to an active thread

Returns
- whether the operation was successful

Reimplemented in FMicrosoftPlatformCrashContext.

Definition at line 566 of file GenericPlatformCrashContext.h.

◆ GetPortableCallStack()

virtual void FGenericCrashContext::GetPortableCallStack ( const uint64 * StackFrames,
int32 NumStackFrames,
TArray< FCrashStackFrame > & OutCallStack ) const
virtual

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

◆ GetTempSessionContextFilePath()

static FString FGenericCrashContext::GetTempSessionContextFilePath ( uint64 ProcessID)
static

Get the file path to the temporary session context file that we create for the given process.

◆ GetType()

ECrashContextType FGenericCrashContext::GetType ( ) const
inline
Returns
the type of this crash

Definition at line 533 of file GenericPlatformCrashContext.h.

◆ GetUniqueCrashName()

void FGenericCrashContext::GetUniqueCrashName ( TCHAR * GUIDBuffer,
int32 BufferSize ) const
Returns
a globally unique crash name.

◆ Initialize()

static void FGenericCrashContext::Initialize ( )
static

Initializes crash context related platform specific data that can be impossible to obtain after a crash.

◆ InitializeFromConfig()

static void FGenericCrashContext::InitializeFromConfig ( )
staticprivate

Called once when GConfig is initialized. Opportunity to cache values from config.

◆ InitializeFromContext()

static void FGenericCrashContext::InitializeFromContext ( const FSessionContext & Context,
const TCHAR * EnabledPlugins,
const TCHAR * EngineData,
const TCHAR * GameData )
static

Initialized crash context, using a crash context (e.g. shared from another process).

◆ IsFullCrashDump()

const bool FGenericCrashContext::IsFullCrashDump ( ) const
Returns
whether this crash is a full memory minidump

◆ IsInitalized()

static bool FGenericCrashContext::IsInitalized ( )
inlinestatic
Returns
true, if the generic crash context has been initialized.

Definition at line 315 of file GenericPlatformCrashContext.h.

◆ IsOutOfProcessCrashReporter()

static bool FGenericCrashContext::IsOutOfProcessCrashReporter ( )
inlinestatic
Returns
true if walking the crashed call stack and writing the minidump is being handled out-of-process.
Note
The reporting itself (showing the crash UI and sending the report is always done out of process)

Definition at line 324 of file GenericPlatformCrashContext.h.

◆ IsTypeContinuable()

static bool FGenericCrashContext::IsTypeContinuable ( ECrashContextType Type)
inlinestatic
Returns
whether a crash context type is continable

Definition at line 538 of file GenericPlatformCrashContext.h.

◆ OnAdditionalCrashContextDelegate()

static FAdditionalCrashContextDelegate & FGenericCrashContext::OnAdditionalCrashContextDelegate ( )
inlinestatic

Delegate for additional crash context.

Definition at line 471 of file GenericPlatformCrashContext.h.

◆ operator=()

FGenericCrashContext & FGenericCrashContext::operator= ( const FGenericCrashContext & )
privatedelete

◆ PurgeOldCrashConfig()

static void FGenericCrashContext::PurgeOldCrashConfig ( )
static

Helper to clean out old files in the crash report client config folder.

◆ ResetEngineData()

static void FGenericCrashContext::ResetEngineData ( )
static

Clears the engine data dictionary

◆ ResetGameData()

static void FGenericCrashContext::ResetGameData ( )
static

Clears the game data dictionary

◆ SerializeAsXML()

virtual void FGenericCrashContext::SerializeAsXML ( const TCHAR * Filename) const
virtual

Serializes crash's informations to the specified filename. Should be overridden for platforms where using FFileHelper is not safe, all POSIX platforms.

◆ SerializeContentToBuffer()

void FGenericCrashContext::SerializeContentToBuffer ( ) const

Serializes all data to the buffer.

◆ SerializeSessionContext()

static void FGenericCrashContext::SerializeSessionContext ( FString & Buffer)
static

Serializes session context to the given buffer. NOTE: Assumes that the buffer already has a header and section open.

◆ SerializeTempCrashContextToFile()

static void FGenericCrashContext::SerializeTempCrashContextToFile ( )
staticprivate

Serializes the session context section of the crash context to a temporary file.

◆ SerializeUserSettings()

static void FGenericCrashContext::SerializeUserSettings ( FString & Buffer)
staticprivate

Serializes the current user setting struct to a buffer.

◆ SetCrashedProcess()

void FGenericCrashContext::SetCrashedProcess ( const FProcHandle & Process)
inline

Sets the process id to that has crashed. On supported platforms this will analyze the given process rather than current. Default is current process.

Definition at line 478 of file GenericPlatformCrashContext.h.

◆ SetCrashedThreadId()

void FGenericCrashContext::SetCrashedThreadId ( uint32 InId)
inline

Stores crashing thread id.

Definition at line 484 of file GenericPlatformCrashContext.h.

◆ SetCrashTrigger()

static void FGenericCrashContext::SetCrashTrigger ( ECrashTrigger Type)
static

Sets the type of crash triggered. Used to distinguish crashes caused for debugging purposes.

◆ SetDeploymentName()

static void FGenericCrashContext::SetDeploymentName ( const FString & EpicApp)
static

Set the current deployment name (ie. EpicApp)

◆ SetEngineData()

static void FGenericCrashContext::SetEngineData ( const FString & Key,
const FString & Value )
static

Updates (or adds if not already present) arbitrary engine data to the crash context (will remove the key if passed an empty string)

◆ SetEngineExit()

static void FGenericCrashContext::SetEngineExit ( bool bIsRequestExit)
static

Notify the crash context exit has been requested.

◆ SetGameData()

static void FGenericCrashContext::SetGameData ( const FString & Key,
const FString & Value )
static

Updates (or adds if not already present) arbitrary game data to the crash context (will remove the key if passed an empty string)

◆ SetMemoryStats()

static void FGenericCrashContext::SetMemoryStats ( const FPlatformMemoryStats & MemoryStats)
static

We can't gather memory stats in crash handling function, so we gather them just before raising exception and use in crash reporting.

◆ SetNumMinidumpFramesToIgnore()

void FGenericCrashContext::SetNumMinidumpFramesToIgnore ( int32 InNumMinidumpFramesToIgnore)

Sets the number of stack frames to ignore when symbolicating from a minidump

◆ SetOutOfProcessCrashReporterExitCode()

static void FGenericCrashContext::SetOutOfProcessCrashReporterExitCode ( int32 ExitCode)
static

Set the out of process crash reporter exit code if known. The out of process reporter is expected to run in background, waiting for a signal to handle a crashes/ensures/assert, but sometimes it crashes. If the engine detects that its associated out of process crash reporter died and if the child process exit code can be retrieved, it can be exposed through this function.

See also
GetOutOfProcessCrashReporterExitCode

◆ SetOutOfProcessCrashReporterPid()

static void FGenericCrashContext::SetOutOfProcessCrashReporterPid ( uint32 ProcessId)
inlinestatic

Set whether or not the out-of-process crash reporter is running. A non-zero process id means that crash artifacts like the call stack and then minidump are built in a separated background process. The reporting itself, i.e. packaging and sending the crash artifacts is always done out of process.

Note
CrashReportClient (CrashReportClientEditor for the Editor) can be configured to wait for crash, capture the crashed process callstack, write the minidump, collect all crash artifacts and send them (out-of-process reporting) or just collect and send them (in-process reporting because the crashing process creates all crash artifacts itself).

Definition at line 343 of file GenericPlatformCrashContext.h.

◆ SetPortableCallStack()

virtual void FGenericCrashContext::SetPortableCallStack ( const uint64 * StackFrames,
int32 NumStackFrames )
virtual

Sets the portable callstack to a specified stack

Reimplemented in FMicrosoftPlatformCrashContext.

◆ UnescapeXMLString()

static FString FGenericCrashContext::UnescapeXMLString ( const FString & Text)
static

Unescapes a specified XML string, naive implementation.

◆ UpdateLocalizedStrings()

static void FGenericCrashContext::UpdateLocalizedStrings ( )
staticprivate

Called to update any localized strings in the crash context

Member Data Documentation

◆ AdditionalCrashContextDelegate

FAdditionalCrashContextDelegate FGenericCrashContext::AdditionalCrashContextDelegate
staticprivate

Delegate for additional crash context.

Definition at line 645 of file GenericPlatformCrashContext.h.

◆ bIsInitialized

bool FGenericCrashContext::bIsInitialized
staticprivate

Whether the Initialize() has been called

Definition at line 632 of file GenericPlatformCrashContext.h.

◆ CallStack

TArray<FCrashStackFrame> FGenericCrashContext::CallStack
protected

Definition at line 573 of file GenericPlatformCrashContext.h.

◆ CommonBuffer

FString FGenericCrashContext::CommonBuffer
mutableprivate

The buffer used to store the crash's properties.

Definition at line 649 of file GenericPlatformCrashContext.h.

◆ ConfigSectionName

const TCHAR* const FGenericCrashContext::ConfigSectionName
static

Definition at line 276 of file GenericPlatformCrashContext.h.

◆ CrashConfigExtension

const TCHAR* const FGenericCrashContext::CrashConfigExtension
static

Definition at line 275 of file GenericPlatformCrashContext.h.

◆ CrashConfigFileNameA

const ANSICHAR* const FGenericCrashContext::CrashConfigFileNameA
static

Definition at line 273 of file GenericPlatformCrashContext.h.

◆ CrashConfigFileNameW

const TCHAR* const FGenericCrashContext::CrashConfigFileNameW
static

Definition at line 274 of file GenericPlatformCrashContext.h.

◆ CrashConfigPurgeDays

const TCHAR* const FGenericCrashContext::CrashConfigPurgeDays
static

Definition at line 277 of file GenericPlatformCrashContext.h.

◆ CrashContextExtension

const TCHAR* const FGenericCrashContext::CrashContextExtension
static

Definition at line 280 of file GenericPlatformCrashContext.h.

◆ CrashContextIndex

int32 FGenericCrashContext::CrashContextIndex
private

Records which crash context we were using the StaticCrashContextIndex counter

Definition at line 652 of file GenericPlatformCrashContext.h.

◆ CrashContextRuntimeXMLNameA

const ANSICHAR* const FGenericCrashContext::CrashContextRuntimeXMLNameA
static

Definition at line 270 of file GenericPlatformCrashContext.h.

◆ CrashContextRuntimeXMLNameW

const TCHAR* const FGenericCrashContext::CrashContextRuntimeXMLNameW
static

Definition at line 271 of file GenericPlatformCrashContext.h.

◆ CrashedThreadId

uint32 FGenericCrashContext::CrashedThreadId
protected

Definition at line 570 of file GenericPlatformCrashContext.h.

◆ CrashGUIDLength

constexpr int32 FGenericCrashContext::CrashGUIDLength = 128
staticconstexpr

Definition at line 288 of file GenericPlatformCrashContext.h.

◆ CrashGUIDRootPrefix

const TCHAR* const FGenericCrashContext::CrashGUIDRootPrefix
static

Definition at line 278 of file GenericPlatformCrashContext.h.

◆ CrashTypeAbnormalShutdown

const TCHAR* const FGenericCrashContext::CrashTypeAbnormalShutdown
static

Definition at line 296 of file GenericPlatformCrashContext.h.

◆ CrashTypeAssert

const TCHAR* const FGenericCrashContext::CrashTypeAssert
static

Definition at line 291 of file GenericPlatformCrashContext.h.

◆ CrashTypeCrash

const TCHAR* const FGenericCrashContext::CrashTypeCrash
static

Definition at line 290 of file GenericPlatformCrashContext.h.

◆ CrashTypeEnsure

const TCHAR* const FGenericCrashContext::CrashTypeEnsure
static

Definition at line 292 of file GenericPlatformCrashContext.h.

◆ CrashTypeGPU

const TCHAR* const FGenericCrashContext::CrashTypeGPU
static

Definition at line 294 of file GenericPlatformCrashContext.h.

◆ CrashTypeHang

const TCHAR* const FGenericCrashContext::CrashTypeHang
static

Definition at line 295 of file GenericPlatformCrashContext.h.

◆ CrashTypeOutOfMemory

const TCHAR* const FGenericCrashContext::CrashTypeOutOfMemory
static

Definition at line 297 of file GenericPlatformCrashContext.h.

◆ CrashTypeStall

const TCHAR* const FGenericCrashContext::CrashTypeStall
static

Definition at line 293 of file GenericPlatformCrashContext.h.

◆ EnabledPluginsTag

const TCHAR* const FGenericCrashContext::EnabledPluginsTag
static

Definition at line 285 of file GenericPlatformCrashContext.h.

◆ EngineDataTag

const TCHAR* const FGenericCrashContext::EngineDataTag
static

Definition at line 283 of file GenericPlatformCrashContext.h.

◆ EngineModeExDirty

const TCHAR* const FGenericCrashContext::EngineModeExDirty
static

Definition at line 300 of file GenericPlatformCrashContext.h.

◆ EngineModeExUnknown

const TCHAR* const FGenericCrashContext::EngineModeExUnknown
static

Definition at line 299 of file GenericPlatformCrashContext.h.

◆ EngineModeExVanilla

const TCHAR* const FGenericCrashContext::EngineModeExVanilla
static

Definition at line 301 of file GenericPlatformCrashContext.h.

◆ ErrorMessage

const TCHAR* FGenericCrashContext::ErrorMessage
protected

Definition at line 571 of file GenericPlatformCrashContext.h.

◆ ExecutionGuid

const FGuid FGenericCrashContext::ExecutionGuid
static

Definition at line 304 of file GenericPlatformCrashContext.h.

◆ GameDataTag

const TCHAR* const FGenericCrashContext::GameDataTag
static

Definition at line 284 of file GenericPlatformCrashContext.h.

◆ ModulesInfo

TArray<FStackWalkModuleInfo> FGenericCrashContext::ModulesInfo
protected

Definition at line 575 of file GenericPlatformCrashContext.h.

◆ NewLineTag

const TCHAR* const FGenericCrashContext::NewLineTag
static

Definition at line 287 of file GenericPlatformCrashContext.h.

◆ NumMinidumpFramesToIgnore

int FGenericCrashContext::NumMinidumpFramesToIgnore
protected

Definition at line 572 of file GenericPlatformCrashContext.h.

◆ OutOfProcessCrashReporterExitCode

volatile int64 FGenericCrashContext::OutOfProcessCrashReporterExitCode
staticprivate

The out of process crash reporter exit code, if available. The 32 MSB indicates if the exit code is set and the 32 LSB contains the exit code. The value can be read/write from different threads.

Definition at line 638 of file GenericPlatformCrashContext.h.

◆ OutOfProcessCrashReporterPid

uint32 FGenericCrashContext::OutOfProcessCrashReporterPid
staticprivate

The ID of the external process reporting crashes if the platform supports it and was configured to use it, zero otherwise (0 is a reserved system process ID, invalid for the out of process reporter).

Definition at line 635 of file GenericPlatformCrashContext.h.

◆ PlatformPropertiesTag

const TCHAR* const FGenericCrashContext::PlatformPropertiesTag
static

Definition at line 282 of file GenericPlatformCrashContext.h.

◆ ProcessHandle

FProcHandle FGenericCrashContext::ProcessHandle
protected

Definition at line 568 of file GenericPlatformCrashContext.h.

◆ RuntimePropertiesTag

const TCHAR* const FGenericCrashContext::RuntimePropertiesTag
static

Definition at line 281 of file GenericPlatformCrashContext.h.

◆ StaticCrashContextIndex

int32 FGenericCrashContext::StaticCrashContextIndex
staticprivate

Static counter records how many crash contexts have been constructed

Definition at line 641 of file GenericPlatformCrashContext.h.

◆ ThreadCallStacks

TArray<FThreadStackFrames> FGenericCrashContext::ThreadCallStacks
protected

Definition at line 574 of file GenericPlatformCrashContext.h.

◆ Type

ECrashContextType FGenericCrashContext::Type
protected

Definition at line 569 of file GenericPlatformCrashContext.h.

◆ UEMinidumpName

const TCHAR* const FGenericCrashContext::UEMinidumpName
static

Definition at line 286 of file GenericPlatformCrashContext.h.


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