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

#include <MicrosoftPlatformCrashContext.h>

+ Inheritance diagram for FMicrosoftPlatformCrashContext:
+ Collaboration diagram for FMicrosoftPlatformCrashContext:

Public Member Functions

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

Protected Types

typedef TArray< void *, TInlineAllocator< 128 > > FModuleHandleArray
 

Protected Member Functions

virtual bool GetPlatformAllThreadContextsString (FString &OutStr) const override
 
- Protected Member Functions inherited from FGenericCrashContext
virtual const TCHAR * GetCallstackProperty () const
 

Static Protected Member Functions

static void GetProcModuleHandles (const FProcHandle &Process, FModuleHandleArray &OutHandles)
 
static void ConvertProgramCountersToStackFrames (const FProcHandle &Process, const FModuleHandleArray &SortedModuleHandles, const uint64 *ProgramCounters, int32 NumPCs, TArray< FCrashStackFrame > &OutStackFrames)
 
static void AddThreadContextString (uint32 CrashedThreadId, uint32 ThreadId, const FString &ThreadName, const TArray< FCrashStackFrame > &StackFrames, FString &OutStr)
 
- Static Protected Member Functions inherited from FGenericCrashContext
static const FStringGetEngineData (const FString &Key)
 
static const FStringGetGameData (const FString &Key)
 

Additional Inherited Members

- Static Public Member Functions inherited from FGenericCrashContext
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 inherited from FGenericCrashContext
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 Attributes inherited from FGenericCrashContext
FProcHandle ProcessHandle
 
ECrashContextType Type
 
uint32 CrashedThreadId
 
const TCHAR * ErrorMessage
 
int NumMinidumpFramesToIgnore
 
TArray< FCrashStackFrameCallStack
 
TArray< FThreadStackFramesThreadCallStacks
 
TArray< FStackWalkModuleInfoModulesInfo
 

Detailed Description

Definition at line 8 of file MicrosoftPlatformCrashContext.h.

Member Typedef Documentation

◆ FModuleHandleArray

Constructor & Destructor Documentation

◆ FMicrosoftPlatformCrashContext()

FMicrosoftPlatformCrashContext::FMicrosoftPlatformCrashContext ( ECrashContextType InType,
const TCHAR * InErrorMessage )
inline

Definition at line 10 of file MicrosoftPlatformCrashContext.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Function Documentation

◆ AddPortableThreadCallStack()

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

Adds a portable callstack for a thread

Reimplemented from FGenericCrashContext.

◆ AddThreadContextString()

static void FMicrosoftPlatformCrashContext::AddThreadContextString ( uint32 CrashedThreadId,
uint32 ThreadId,
const FString & ThreadName,
const TArray< FCrashStackFrame > & StackFrames,
FString & OutStr )
staticprotected

◆ CaptureAllThreadContexts()

void FMicrosoftPlatformCrashContext::CaptureAllThreadContexts ( )

◆ ConvertProgramCountersToStackFrames()

static void FMicrosoftPlatformCrashContext::ConvertProgramCountersToStackFrames ( const FProcHandle & Process,
const FModuleHandleArray & SortedModuleHandles,
const uint64 * ProgramCounters,
int32 NumPCs,
TArray< FCrashStackFrame > & OutStackFrames )
staticprotected

◆ GetPlatformAllThreadContextsString()

virtual bool FMicrosoftPlatformCrashContext::GetPlatformAllThreadContextsString ( FString & OutStr) const
overrideprotectedvirtual

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

Returns
- whether the operation was successful

Reimplemented from FGenericCrashContext.

◆ GetProcModuleHandles()

static void FMicrosoftPlatformCrashContext::GetProcModuleHandles ( const FProcHandle & Process,
FModuleHandleArray & OutHandles )
staticprotected

◆ SetPortableCallStack()

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

Sets the portable callstack to a specified stack

Reimplemented from FGenericCrashContext.


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