5#include "Containers/Array.h"
18#include "Misc/Optional.h"
28#ifndef WITH_ADDITIONAL_CRASH_CONTEXTS
29#define WITH_ADDITIONAL_CRASH_CONTEXTS 1
146#define CR_MAX_ERROR_MESSAGE_CHARS 2048
147#define CR_MAX_DIRECTORY_CHARS 256
148#define CR_MAX_SYMBOL_CHARS 128
149#define CR_MAX_STACK_FRAMES 256
150#define CR_MAX_THREAD_NAME_CHARS 64
151#define CR_MAX_THREADS 512
152#define CR_MAX_GENERIC_FIELD_CHARS 64
153#define CR_MAX_COMMANDLINE_CHARS 1024
154#define CR_MAX_RICHTEXT_FIELD_CHARS 512
155#define CR_MAX_DYNAMIC_BUFFER_CHARS 1024*32
156#define CR_MAX_GPU_BREADCRUMBS_QUEUES 2
157#define CR_MAX_GPU_BREADCRUMBS_STRING_CHARS 1024*8
294#if WITH_ADDITIONAL_CRASH_CONTEXTS
369 FSHA1 FullHash, ActiveHash;
373 static FString Sanitize(FString
const&
Name);
376 static FString SanitizeForHash(FString
const&
Name);
480 return bIsInitialized;
489 return OutOfProcessCrashReporterPid != 0;
497 return OutOfProcessCrashReporterPid;
508 OutOfProcessCrashReporterPid = ProcessId;
567 template <
typename Type>
573 template <
typename Type>
676#if WITH_ADDITIONAL_CRASH_CONTEXTS
680 return AdditionalCrashContextDelegate;
815 static void SerializeTempCrashContextToFile();
818 static void SerializeUserSettings(FString&
Buffer);
824 template <
typename Type>
831 CORE_API virtual void AddPlatformSpecificProperties()
const;
834 void AddPortableCallStack()
const;
837 void AddPortableCallStackHash()
const;
840 void AddGPUBreadcrumbs()
const;
843 void AddModules()
const;
858 static void InitializeFromConfig();
861 static void UpdateLocalizedStrings();
864 static bool bIsInitialized;
870 static volatile int64 OutOfProcessCrashReporterExitCode;
873 static int32 StaticCrashContextIndex;
875#if WITH_ADDITIONAL_CRASH_CONTEXTS
881 mutable FString CommonBuffer;
884 int32 CrashContextIndex;
904 CORE_API FString GetRecoveryServerName();
913#if WITH_ADDITIONAL_CRASH_CONTEXTS
927 enum { MaxStackDepth = 16 };
937 check(StackIndex < MaxStackDepth);
938 Stack[StackIndex++] = Provider;
941 inline void PopProviderInternal()
943 check(StackIndex > 0);
944 Stack[--StackIndex] =
nullptr;
971#define UE_ADD_CRASH_CONTEXT_SCOPE(FuncExpr) FScopedAdditionalCrashContextProvider ANONYMOUS_VARIABLE(AddCrashCtx)(FuncExpr)
975#define UE_ADD_CRASH_CONTEXT_SCOPE(FuncExpr)
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:58
#define DECLARE_MULTICAST_DELEGATE(DelegateName)
Definition DelegateCombinations.h:23
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
ECrashTrigger
Definition GenericPlatformCrashContext.h:128
#define CR_MAX_GENERIC_FIELD_CHARS
Definition GenericPlatformCrashContext.h:152
ECrashDumpMode
Definition GenericPlatformCrashContext.h:78
#define CR_MAX_GPU_BREADCRUMBS_QUEUES
Definition GenericPlatformCrashContext.h:156
#define CR_MAX_GPU_BREADCRUMBS_STRING_CHARS
Definition GenericPlatformCrashContext.h:157
#define CR_MAX_ERROR_MESSAGE_CHARS
Definition GenericPlatformCrashContext.h:146
#define CR_MAX_DYNAMIC_BUFFER_CHARS
Definition GenericPlatformCrashContext.h:155
#define CR_MAX_SYMBOL_CHARS
Definition GenericPlatformCrashContext.h:148
ECrashExitCodes
Definition GenericPlatformCrashContext.h:37
@ OutOfProcessReporterExitedUnexpectedly
Definition GenericPlatformCrashContext.h:51
@ UnhandledEnsure
Definition GenericPlatformCrashContext.h:60
@ CrashReporterCrashed
Definition GenericPlatformCrashContext.h:45
@ CrashHandlerCrashed
Definition GenericPlatformCrashContext.h:48
@ MonitoredApplicationExitCodeNotAvailable
Definition GenericPlatformCrashContext.h:42
@ CrashDuringStaticInit
Definition GenericPlatformCrashContext.h:54
@ MonitoredApplicationStillRunning
Definition GenericPlatformCrashContext.h:39
@ OutOfProcessReporterCheckFailed
Definition GenericPlatformCrashContext.h:57
ECrashContextType
Definition GenericPlatformCrashContext.h:112
#define CR_MAX_DIRECTORY_CHARS
Definition GenericPlatformCrashContext.h:147
#define CR_MAX_RICHTEXT_FIELD_CHARS
Definition GenericPlatformCrashContext.h:154
ECrashDescVersions
Definition GenericPlatformCrashContext.h:65
@ VER_2_AddedNewProperties
EUnattendedStatus
Definition GenericPlatformCrashContext.h:138
#define CR_MAX_THREAD_NAME_CHARS
Definition GenericPlatformCrashContext.h:150
#define CR_MAX_COMMANDLINE_CHARS
Definition GenericPlatformCrashContext.h:153
#define CR_MAX_THREADS
Definition GenericPlatformCrashContext.h:151
CORE_API const TCHAR * AttendedStatusToString(const EUnattendedStatus Status)
Definition GenericPlatformCrashContext.cpp:83
const bool
Definition NetworkReplayStreaming.h:178
TStringView< TCHAR > FStringView
Definition StringFwd.h:45
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition GenericPlatformCrashContext.h:367
CORE_API void EndNode()
Definition GenericPlatformCrashContext.cpp:147
CORE_API void BeginNode(FString const &Name, EState State)
Definition GenericPlatformCrashContext.cpp:116
CORE_API FQueueData GetResult()
Definition GenericPlatformCrashContext.cpp:162
Definition SecureHash.h:314
Definition SecureHash.h:226
Definition UnrealString.h.inl:34
Definition FunctionFwd.h:19
Definition GenericPlatformCrashContext.h:902
Definition GenericPlatformCrashContext.h:919
static CORE_API void PopProvider()
static CORE_API void PushProvider(struct FScopedAdditionalCrashContextProvider *Provider)
static CORE_API void ExecuteProviders(FCrashContextExtendedWriter &Writer)
static CORE_API FAdditionalCrashContextStack & GetThreadContextProvider()
Definition GenericPlatformCrashContext.h:300
virtual void AddBuffer(const TCHAR *Identifier, const uint8 *Data, uint32 DataSize)=0
virtual ~FCrashContextExtendedWriter()=default
virtual void AddString(const TCHAR *Identifier, const TCHAR *DataStr)=0
Definition GenericPlatformCrashContext.h:91
FCrashStackFrame(FString ModuleNameIn, uint64 BaseAddressIn, uint64 OffsetIn)
Definition GenericPlatformCrashContext.h:96
uint64 Offset
Definition GenericPlatformCrashContext.h:94
uint64 BaseAddress
Definition GenericPlatformCrashContext.h:93
FString ModuleName
Definition GenericPlatformCrashContext.h:92
Definition GenericPlatformCrashContext.h:355
FSHAHash ActiveHash
Definition GenericPlatformCrashContext.h:358
FString BreadcrumbString
Definition GenericPlatformCrashContext.h:356
FSHAHash FullHash
Definition GenericPlatformCrashContext.h:357
Definition GenericPlatformCrashContext.h:331
FString Version
Definition GenericPlatformCrashContext.h:364
static constexpr TCHAR const CurrentVersion[]
Definition GenericPlatformCrashContext.h:337
EState
Definition GenericPlatformCrashContext.h:340
TMap< FString, FQueueData > Queues
Definition GenericPlatformCrashContext.h:362
TCHAR static const constexpr StateChars[]
Definition GenericPlatformCrashContext.h:347
FString SourceName
Definition GenericPlatformCrashContext.h:363
FGPUBreadcrumbCrashData(TCHAR const *InSourceName, TCHAR const *InVersion=CurrentVersion)
Definition GenericPlatformCrashContext.h:385
Definition GenericPlatformCrashContext.h:232
TCHAR Breadcrumbs[CR_MAX_GPU_BREADCRUMBS_STRING_CHARS]
Definition GenericPlatformCrashContext.h:236
TCHAR FullHash[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:234
TCHAR ActiveHash[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:235
TCHAR QueueName[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:233
Definition GenericPlatformCrashContext.h:231
TCHAR Version[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:240
TCHAR SourceName[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:239
FQueueData Queues[CR_MAX_GPU_BREADCRUMBS_QUEUES]
Definition GenericPlatformCrashContext.h:243
uint32 NumQueues
Definition GenericPlatformCrashContext.h:242
Definition GenericPlatformCrashContext.h:395
static CORE_API const TCHAR *const CrashTypeGPU
Definition GenericPlatformCrashContext.h:450
static CORE_API const TCHAR *const IsStallTag
Definition GenericPlatformCrashContext.h:425
static CORE_API const TCHAR *const CrashConfigPurgeDays
Definition GenericPlatformCrashContext.h:405
static CORE_API const TCHAR *const CrashTypeHang
Definition GenericPlatformCrashContext.h:451
TArray< FCrashStackFrame > CallStack
Definition GenericPlatformCrashContext.h:796
const TCHAR * ErrorMessage
Definition GenericPlatformCrashContext.h:794
void AddCrashProperty(const TCHAR *PropertyName, const Type &Value) const
Definition GenericPlatformCrashContext.h:568
static CORE_API const TCHAR *const IsSourceDistributionTag
Definition GenericPlatformCrashContext.h:442
static CORE_API const TCHAR *const CrashTypeVerseRuntimeError
Definition GenericPlatformCrashContext.h:454
CORE_API void CaptureThreadPortableCallStack(const uint64 ThreadId, void *Context)
Definition GenericPlatformCrashContext.cpp:1642
static CORE_API bool CreateCrashReportDirectory(const TCHAR *CrashGUIDRoot, int32 CrashIndex, FString &OutCrashDirectoryAbsolute)
Definition GenericPlatformCrashContext.cpp:1903
static CORE_API TOptional< int32 > GetOutOfProcessCrashReporterExitCode()
Definition GenericPlatformCrashContext.cpp:849
static CORE_API void CleanupPlatformSpecificFiles()
Definition AndroidPlatformCrashContext.cpp:95
static CORE_API FString GenerateNewCrashGuidBase()
Definition GenericPlatformCrashContext.cpp:327
virtual CORE_API void AddPortableThreadCallStacks(TConstArrayView< FThreadCallStack > Threads)
Definition GenericPlatformCrashContext.cpp:1704
static CORE_API void ResetEngineData()
Definition GenericPlatformCrashContext.cpp:1456
static CORE_API FString GetCrashGameName()
Definition GenericPlatformCrashContext.cpp:1375
static CORE_API void SerializeSessionContext(FString &Buffer)
Definition GenericPlatformCrashContext.cpp:905
static CORE_API const TCHAR *const RuntimePropertiesTag
Definition GenericPlatformCrashContext.h:411
virtual CORE_API void CaptureModules()
Definition GenericPlatformCrashContext.cpp:1717
static CORE_API void SetMemoryStats(const FPlatformMemoryStats &MemoryStats)
Definition GenericPlatformCrashContext.cpp:681
static CORE_API void AddHeader(FString &Buffer)
Definition GenericPlatformCrashContext.cpp:1292
static CORE_API const TCHAR *const CrashReportOptionalAttachmentsDirName
Definition GenericPlatformCrashContext.h:408
static CORE_API const TCHAR *const EngineDataTag
Definition GenericPlatformCrashContext.h:414
static CORE_API const TCHAR *const CrashContextExtension
Definition GenericPlatformCrashContext.h:410
static CORE_API void SetDeploymentName(const FString &EpicApp)
Definition GenericPlatformCrashContext.cpp:1140
static CORE_API void SetGameData(const FString &Key, const FString &Value)
Definition GenericPlatformCrashContext.cpp:1518
static CORE_API FString UnescapeXMLString(const FString &Text)
Definition GenericPlatformCrashContext.cpp:1365
static CORE_API const TCHAR *const IsAssertTag
Definition GenericPlatformCrashContext.h:426
virtual CORE_API void GetModules(TArray< FStackWalkModuleInfo > &OutModules) const
Definition GenericPlatformCrashContext.cpp:1723
static CORE_API const TCHAR *const CrashTypeAssert
Definition GenericPlatformCrashContext.h:447
static CORE_API FString GetTempSessionContextFilePath(uint64 ProcessID)
Definition GenericPlatformCrashContext.cpp:794
static CORE_API void AddFile(const FString &AbsoluteSourcePath)
Definition GenericPlatformCrashContext.cpp:1564
static CORE_API const TCHAR *const CrashTypeAbnormalShutdown
Definition GenericPlatformCrashContext.h:452
TArray< FStackWalkModuleInfo > ModulesInfo
Definition GenericPlatformCrashContext.h:798
static CORE_API const TCHAR *const CrashTypeCrash
Definition GenericPlatformCrashContext.h:446
static CORE_API const TCHAR *const IsPerforceBuildTag
Definition GenericPlatformCrashContext.h:440
static CORE_API const TCHAR *const NewLineTag
Definition GenericPlatformCrashContext.h:420
static CORE_API const TCHAR * GetCrashTypeString(ECrashContextType Type)
Definition GenericPlatformCrashContext.cpp:1380
static CORE_API void OnThreadUnstuck(uint32 ThreadId)
Definition GenericPlatformCrashContext.cpp:773
static CORE_API const TCHAR *const CrashTypeStall
Definition GenericPlatformCrashContext.h:449
static CORE_API void AppendPortableCallstack(FString &OutBuffer, TConstArrayView< FCrashStackFrame > StackFrames)
Definition GenericPlatformCrashContext.cpp:1233
static CORE_API const TCHAR *const PortableCallStackHashTag
Definition GenericPlatformCrashContext.h:435
static CORE_API const TMap< FString, FString > & GetEngineData()
Definition GenericPlatformCrashContext.cpp:1501
CORE_API void SetNumMinidumpFramesToIgnore(int32 InNumMinidumpFramesToIgnore)
Definition GenericPlatformCrashContext.cpp:1135
static CORE_API void AppendEscapedXMLString(FString &OutBuffer, FStringView Text)
Definition GenericPlatformCrashContext.cpp:1355
static CORE_API const TCHAR * GetDeploymentName()
Definition GenericPlatformCrashContext.cpp:1145
void SetCrashedProcess(const FProcHandle &Process)
Definition GenericPlatformCrashContext.h:685
virtual CORE_API void GetPortableCallStack(const uint64 *StackFrames, int32 NumStackFrames, TArray< FCrashStackFrame > &OutCallStack) const
Definition GenericPlatformCrashContext.cpp:1664
static CORE_API void CleanupTempSessionContextFiles(const FTimespan &ExpirationAge)
Definition GenericPlatformCrashContext.cpp:799
static CORE_API const TCHAR *const CrashTypeEnsure
Definition GenericPlatformCrashContext.h:448
static CORE_API const TCHAR *const RequestDataTag
Definition GenericPlatformCrashContext.h:416
FProcHandle ProcessHandle
Definition GenericPlatformCrashContext.h:791
virtual CORE_API void AddPortableThreadCallStack(uint32 ThreadId, const TCHAR *ThreadName, const uint64 *StackFrames, int32 NumStackFrames)
Definition GenericPlatformCrashContext.cpp:1712
static CORE_API const TCHAR *const PortableCallStackTag
Definition GenericPlatformCrashContext.h:434
static FEngineDataSetDelegate & OnEngineDataSetDelegate()
Definition GenericPlatformCrashContext.h:619
static CORE_API const TCHAR *const ConfigSectionName
Definition GenericPlatformCrashContext.h:404
static CORE_API const TCHAR *const CallStackTag
Definition GenericPlatformCrashContext.h:433
uint32 CrashedThreadId
Definition GenericPlatformCrashContext.h:793
static CORE_API const TCHAR *const UEMinidumpName
Definition GenericPlatformCrashContext.h:419
virtual ~FGenericCrashContext()
Definition GenericPlatformCrashContext.h:529
static CORE_API void AddFooter(FString &Buffer)
Definition GenericPlatformCrashContext.cpp:1298
static CORE_API const FGuid ExecutionGuid
Definition GenericPlatformCrashContext.h:461
static CORE_API void SetOutOfProcessCrashReporterExitCode(int32 ExitCode)
Definition GenericPlatformCrashContext.cpp:860
static CORE_API const TCHAR *const ExecutionGuidTag
Definition GenericPlatformCrashContext.h:422
static CORE_API const TCHAR *const DeploymentNameTag
Definition GenericPlatformCrashContext.h:412
CORE_API void CapturePortableCallStack(void *ErrorProgramCounter, void *Context)
Definition GenericPlatformCrashContext.cpp:1613
static CORE_API const TCHAR *const CrashContextRuntimeXMLNameW
Definition GenericPlatformCrashContext.h:399
static void AddCrashProperty(FString &Buffer, const TCHAR *PropertyName, const Type &Value)
Definition GenericPlatformCrashContext.h:574
static CORE_API const TCHAR * GetCrashConfigFolder()
Definition GenericPlatformCrashContext.cpp:1416
static CORE_API const TCHAR *const IsInternalBuildTag
Definition GenericPlatformCrashContext.h:439
virtual CORE_API const TCHAR * GetCallstackProperty() const
Definition GenericPlatformCrashContext.cpp:1125
CORE_API const bool IsFullCrashDump() const
Definition GenericPlatformCrashContext.cpp:1160
static void SetOutOfProcessCrashReporterPid(uint32 ProcessId)
Definition GenericPlatformCrashContext.h:506
static CORE_API const FSessionContext & GetCachedSessionContext()
Definition GenericPlatformCrashContext.cpp:611
static CORE_API const TMap< FString, FString > & GetGameData()
Definition GenericPlatformCrashContext.cpp:1548
static CORE_API const TCHAR *const PlatformPropertiesTag
Definition GenericPlatformCrashContext.h:413
static CORE_API const TCHAR *const EnabledPluginsTag
Definition GenericPlatformCrashContext.h:418
static CORE_API void InitializeFromContext(const FSessionContext &Context, const TCHAR *EnabledPlugins, const TCHAR *EngineData, const TCHAR *GameData, const TCHAR *FilePathData, const FGPUBreadcrumbsSharedContext *GPUBreadcrumbs)
Definition GenericPlatformCrashContext.cpp:540
static constexpr int32 CrashGUIDLength
Definition GenericPlatformCrashContext.h:444
static CORE_API void SetEngineData(const FString &Key, const FString &Value)
Definition GenericPlatformCrashContext.cpp:1462
static bool IsTypeContinuable(ECrashContextType Type)
Definition GenericPlatformCrashContext.h:746
virtual bool GetPlatformAllThreadContextsString(FString &OutStr) const
Definition GenericPlatformCrashContext.h:789
static CORE_API void SetEpicAccountId(const FString &EpicAccountId)
Definition GenericPlatformCrashContext.cpp:1451
static CORE_API const TCHAR *const EngineModeExDirty
Definition GenericPlatformCrashContext.h:457
static CORE_API void SetCrashTrigger(ECrashTrigger Type)
Definition GenericPlatformCrashContext.cpp:1150
static CORE_API const TCHAR *const LogFilePathTag
Definition GenericPlatformCrashContext.h:437
static CORE_API const TCHAR *const CrashGuidTag
Definition GenericPlatformCrashContext.h:423
static CORE_API void AddSection(FString &Buffer, const TCHAR *SectionName, const FString &SectionContent)
Definition GenericPlatformCrashContext.cpp:1313
static CORE_API void SetGPUBreadcrumbs(FGPUBreadcrumbCrashData &&Data)
Definition GenericPlatformCrashContext.cpp:1492
const FString & GetBuffer() const
Definition GenericPlatformCrashContext.h:543
static CORE_API const TCHAR *const SecondsSinceStartTag
Definition GenericPlatformCrashContext.h:431
static CORE_API void PurgeOldCrashConfig()
Definition GenericPlatformCrashContext.cpp:1426
virtual CORE_API void SerializeAsXML(const TCHAR *Filename) const
Definition GenericPlatformCrashContext.cpp:1173
static CORE_API const TCHAR *const IsRequestingExitTag
Definition GenericPlatformCrashContext.h:436
static CORE_API const TCHAR * GetCrashConfigFilePath()
Definition GenericPlatformCrashContext.cpp:1405
static CORE_API const TCHAR *const EngineModeExUnknown
Definition GenericPlatformCrashContext.h:456
static CORE_API void SetAnticheatProvider(const FString &AnticheatProvider)
Definition GenericPlatformCrashContext.cpp:755
static CORE_API const TCHAR *const CrashTypeOutOfMemory
Definition GenericPlatformCrashContext.h:453
virtual CORE_API void SetPortableCallStack(const uint64 *StackFrames, int32 NumStackFrames)
Definition GenericPlatformCrashContext.cpp:1659
static bool IsInitalized()
Definition GenericPlatformCrashContext.h:478
static CORE_API const ANSICHAR *const CrashContextRuntimeXMLNameA
Definition GenericPlatformCrashContext.h:398
static CORE_API void SetEngineExit(bool bIsRequestExit)
Definition GenericPlatformCrashContext.cpp:1130
static FGameDataResetDelegate & OnGameDataResetDelegate()
Definition GenericPlatformCrashContext.h:628
static FAdditionalCrashContextDelegate & OnAdditionalCrashContextDelegate()
Definition GenericPlatformCrashContext.h:678
static CORE_API const TCHAR *const CrashConfigExtension
Definition GenericPlatformCrashContext.h:403
static CORE_API const TCHAR *const CrashReporterMessageTag
Definition GenericPlatformCrashContext.h:429
static CORE_API void OnThreadStuck(uint32 ThreadId)
Definition GenericPlatformCrashContext.cpp:762
static CORE_API FString DumpLog(const FString &CrashFolderAbsolute)
Definition GenericPlatformCrashContext.cpp:1570
static CORE_API const TCHAR *const ProcessIdTag
Definition GenericPlatformCrashContext.h:438
static CORE_API const TCHAR *const GameNameTag
Definition GenericPlatformCrashContext.h:417
static FEngineDataResetDelegate & OnEngineDataResetDelegate()
Definition GenericPlatformCrashContext.h:610
static CORE_API void DumpAdditionalContext(const TCHAR *CrashFolderAbsolute)
Definition GenericPlatformCrashContext.cpp:1887
static FGameDataSetDelegate & OnGameDataSetDelegate()
Definition GenericPlatformCrashContext.h:634
CORE_API void SerializeContentToBuffer() const
Definition GenericPlatformCrashContext.cpp:1024
static CORE_API void EndSection(FString &Buffer, const TCHAR *SectionName)
Definition GenericPlatformCrashContext.cpp:1308
int NumMinidumpFramesToIgnore
Definition GenericPlatformCrashContext.h:795
static CORE_API const TCHAR *const BuildVersionTag
Definition GenericPlatformCrashContext.h:432
static CORE_API const TCHAR *const EngineModeExVanilla
Definition GenericPlatformCrashContext.h:458
static CORE_API FString GetGameName()
Definition GenericPlatformCrashContext.cpp:616
static CORE_API void BeginSection(FString &Buffer, const TCHAR *SectionName)
Definition GenericPlatformCrashContext.cpp:1303
static CORE_API const ANSICHAR *const CrashConfigFileNameA
Definition GenericPlatformCrashContext.h:401
static CORE_API const TCHAR *const CrashGUIDRootPrefix
Definition GenericPlatformCrashContext.h:406
static CORE_API const TCHAR *const CrashTypeTag
Definition GenericPlatformCrashContext.h:427
static CORE_API const TCHAR *const ErrorMessageTag
Definition GenericPlatformCrashContext.h:428
ECrashContextType Type
Definition GenericPlatformCrashContext.h:792
static CORE_API const TCHAR *const IsWithDebugInfoTag
Definition GenericPlatformCrashContext.h:441
static CORE_API const TCHAR *const GameDataTag
Definition GenericPlatformCrashContext.h:415
static CORE_API void CopySharedCrashContext(FSharedCrashContext &Dst)
Definition GenericPlatformCrashContext.cpp:622
static CORE_API const TCHAR *const IsEnsureTag
Definition GenericPlatformCrashContext.h:424
static CORE_API const TCHAR *const CrashVersionTag
Definition GenericPlatformCrashContext.h:421
static CORE_API const TCHAR *const CrashConfigFileNameW
Definition GenericPlatformCrashContext.h:402
TArray< FThreadStackFrames > ThreadCallStacks
Definition GenericPlatformCrashContext.h:797
static bool IsOutOfProcessCrashReporter()
Definition GenericPlatformCrashContext.h:487
static CORE_API void AddPlugin(const FString &PluginDesc)
Definition GenericPlatformCrashContext.cpp:1559
ECrashContextType GetType() const
Definition GenericPlatformCrashContext.h:741
CORE_API void GetUniqueCrashName(TCHAR *GUIDBuffer, int32 BufferSize) const
Definition GenericPlatformCrashContext.cpp:1155
static CORE_API void ResetGameData()
Definition GenericPlatformCrashContext.cpp:1512
static CORE_API const TCHAR *const AttendedStatusTag
Definition GenericPlatformCrashContext.h:430
static CORE_API void Initialize()
Definition GenericPlatformCrashContext.cpp:337
virtual CORE_API void CopyPlatformSpecificFiles(const TCHAR *OutputDirectory, void *Context)
Definition GenericPlatformCrashContext.cpp:1736
void SetCrashedThreadId(uint32 InId)
Definition GenericPlatformCrashContext.h:691
static uint32 GetOutOfProcessCrashReporterProcessId()
Definition GenericPlatformCrashContext.h:495
Definition GenericPlatformCrashContext.h:899
Definition AndroidPlatformProcess.h:13
Definition GenericPlatformStackWalk.h:43
Definition GenericPlatformCrashContext.h:949
FScopedAdditionalCrashContextProvider(TUniqueFunction< void(FCrashContextExtendedWriter &)> InFunc)
Definition GenericPlatformCrashContext.h:951
void Execute(FCrashContextExtendedWriter &Writer) const
Definition GenericPlatformCrashContext.h:962
~FScopedAdditionalCrashContextProvider()
Definition GenericPlatformCrashContext.h:957
Definition GenericPlatformCrashContext.h:163
TCHAR PrimaryGPUBrand[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:202
bool bWithDebugInfo
Definition GenericPlatformCrashContext.h:166
bool bIsUERelease
Definition GenericPlatformCrashContext.h:168
TCHAR ExecutableName[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:190
TCHAR UserName[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:203
TCHAR CrashGUIDRoot[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:205
uint64 OOMAllocationSize
Definition GenericPlatformCrashContext.h:183
TCHAR CPUBrand[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:201
uint32 CPUModelID
Definition GenericPlatformCrashContext.h:176
FPlatformMemoryStats MemoryStats
Definition GenericPlatformCrashContext.h:216
uint32 StuckThreadId
Definition GenericPlatformCrashContext.h:181
TCHAR PlatformNameIni[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:214
bool bIsSourceDistribution
Definition GenericPlatformCrashContext.h:167
TCHAR BuildConfigurationName[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:191
TCHAR CommandLine[CR_MAX_COMMANDLINE_CHARS]
Definition GenericPlatformCrashContext.h:208
int32 LanguageLCID
Definition GenericPlatformCrashContext.h:173
bool bIsOOM
Definition GenericPlatformCrashContext.h:169
bool bIsInternalBuild
Definition GenericPlatformCrashContext.h:164
int32 CrashTrigger
Definition GenericPlatformCrashContext.h:180
uint32 CPUMicrocodeRevision
Definition GenericPlatformCrashContext.h:177
TCHAR AnticheatProvider[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:215
TCHAR OsSubVersion[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:199
TCHAR BuildVersion[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:186
TCHAR EpicAccountId[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:195
TCHAR CPUVendor[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:200
bool bIsPerforceBuild
Definition GenericPlatformCrashContext.h:165
int32 OOMAllocationAlignment
Definition GenericPlatformCrashContext.h:182
TCHAR DefaultLocale[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:204
int32 NumberOfCoresIncludingHyperthreads
Definition GenericPlatformCrashContext.h:175
TCHAR PlatformName[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:213
uint32 ProcessId
Definition GenericPlatformCrashContext.h:172
TCHAR AttendedStatus[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:212
TCHAR LoginIdStr[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:196
bool bIsStuck
Definition GenericPlatformCrashContext.h:171
TCHAR GameSessionID[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:207
TCHAR UserActivityHint[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:206
int32 NumberOfCores
Definition GenericPlatformCrashContext.h:174
TCHAR EngineMode[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:188
bool bIsExitRequested
Definition GenericPlatformCrashContext.h:170
TCHAR EngineVersion[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:184
int32 SecondsSinceStart
Definition GenericPlatformCrashContext.h:178
TCHAR CrashReportClientRichText[CR_MAX_RICHTEXT_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:209
TCHAR GameStateName[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:210
TCHAR SymbolsLabel[CR_MAX_SYMBOL_CHARS]
Definition GenericPlatformCrashContext.h:197
TCHAR EngineModeEx[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:189
int32 CrashDumpMode
Definition GenericPlatformCrashContext.h:179
TCHAR CrashConfigFilePath[CR_MAX_DIRECTORY_CHARS]
Definition GenericPlatformCrashContext.h:211
TCHAR OsVersion[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:198
TCHAR EngineCompatibleVersion[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:185
TCHAR DeploymentName[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:192
TCHAR RootDir[CR_MAX_DIRECTORY_CHARS]
Definition GenericPlatformCrashContext.h:194
TCHAR GameName[CR_MAX_GENERIC_FIELD_CHARS]
Definition GenericPlatformCrashContext.h:187
TCHAR BaseDir[CR_MAX_DIRECTORY_CHARS]
Definition GenericPlatformCrashContext.h:193
Definition GenericPlatformCrashContext.h:251
void * ExceptionProgramCounter
Definition GenericPlatformCrashContext.h:288
uint32 EngineDataOffset
Definition GenericPlatformCrashContext.h:274
TCHAR DynamicData[CR_MAX_DYNAMIC_BUFFER_CHARS]
Definition GenericPlatformCrashContext.h:282
uint32 GameDataOffset
Definition GenericPlatformCrashContext.h:277
FSessionContext SessionContext
Definition GenericPlatformCrashContext.h:268
FGPUBreadcrumbsSharedContext GPUBreadcrumbs
Definition GenericPlatformCrashContext.h:291
uint32 ThreadIds[CR_MAX_THREADS]
Definition GenericPlatformCrashContext.h:254
uint32 EnabledPluginsNum
Definition GenericPlatformCrashContext.h:270
uint32 EnabledPluginsOffset
Definition GenericPlatformCrashContext.h:271
uint32 EngineDataNum
Definition GenericPlatformCrashContext.h:273
TCHAR ErrorMessage[CR_MAX_ERROR_MESSAGE_CHARS]
Definition GenericPlatformCrashContext.h:253
uint32 FilePathsNum
Definition GenericPlatformCrashContext.h:279
uint32 CrashingThreadId
Definition GenericPlatformCrashContext.h:257
TCHAR CrashFilesDirectory[CR_MAX_DIRECTORY_CHARS]
Definition GenericPlatformCrashContext.h:266
uint32 GameDataNum
Definition GenericPlatformCrashContext.h:276
uint32 NumThreads
Definition GenericPlatformCrashContext.h:256
ECrashContextType CrashType
Definition GenericPlatformCrashContext.h:258
void * ErrorProgramCounter
Definition GenericPlatformCrashContext.h:285
TCHAR ThreadNames[CR_MAX_THREAD_NAME_CHARS *CR_MAX_THREADS]
Definition GenericPlatformCrashContext.h:255
uint32 FilePathsOffset
Definition GenericPlatformCrashContext.h:280
FUserSettingsContext UserSettings
Definition GenericPlatformCrashContext.h:261
void * PlatformCrashContext
Definition GenericPlatformCrashContext.h:264
Definition GenericPlatformStackWalk.h:21
Definition GenericPlatformCrashContext.h:323
TConstArrayView< uint64 > StackFrames
Definition GenericPlatformCrashContext.h:324
const TCHAR * ThreadName
Definition GenericPlatformCrashContext.h:325
uint32 ThreadId
Definition GenericPlatformCrashContext.h:326
Definition GenericPlatformCrashContext.h:105
uint32 ThreadId
Definition GenericPlatformCrashContext.h:107
FString ThreadName
Definition GenericPlatformCrashContext.h:106
TArray< FCrashStackFrame > StackFrames
Definition GenericPlatformCrashContext.h:108
Definition GenericPlatformCrashContext.h:221
bool bSendUsageData
Definition GenericPlatformCrashContext.h:224
bool bSendUnattendedBugReports
Definition GenericPlatformCrashContext.h:223
bool bImplicitSend
Definition GenericPlatformCrashContext.h:225
bool bNoDialog
Definition GenericPlatformCrashContext.h:222
TCHAR LogFilePath[CR_MAX_DIRECTORY_CHARS]
Definition GenericPlatformCrashContext.h:226
Definition Optional.h:131
Definition UnrealString.h:202