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

#include <WindowsPlatformStackWalk.h>

+ Inheritance diagram for FWindowsPlatformStackWalk:
+ Collaboration diagram for FWindowsPlatformStackWalk:

Static Public Member Functions

static bool InitStackWalking ()
 
static bool InitStackWalkingForProcess (const FProcHandle &Process)
 
static TArray< FProgramCounterSymbolInfoGetStack (int32 IgnoreCount, int32 MaxDepth=100, void *Context=nullptr)
 
static void ProgramCounterToSymbolInfo (uint64 ProgramCounter, FProgramCounterSymbolInfo &out_SymbolInfo)
 
static void ProgramCounterToSymbolInfoEx (uint64 ProgramCounter, FProgramCounterSymbolInfoEx &out_SymbolInfo)
 
static FORCENOINLINE uint32 CaptureStackBackTrace (uint64 *BackTrace, uint32 MaxDepth, void *Context=nullptr)
 
static uint32 CaptureThreadStackBackTrace (uint64 ThreadId, uint64 *BackTrace, uint32 MaxDepth, void *Context=nullptr)
 
static FORCENOINLINE void StackWalkAndDump (ANSICHAR *HumanReadableString, SIZE_T HumanReadableStringSize, int32 IgnoreCount, void *Context=nullptr)
 
static void StackWalkAndDump (ANSICHAR *HumanReadableString, SIZE_T HumanReadableStringSize, void *ProgramCounter, void *Context=nullptr)
 
static void ThreadStackWalkAndDump (ANSICHAR *HumanReadableString, SIZE_T HumanReadableStringSize, int32 IgnoreCount, uint32 ThreadId)
 
static int32 GetProcessModuleCount ()
 
static int32 GetProcessModuleSignatures (FStackWalkModuleInfo *ModuleSignatures, const int32 ModuleSignaturesSize)
 
static void RegisterOnModulesChanged ()
 
static bool UploadLocalSymbols ()
 
static FString GetDownstreamStorage ()
 
static voidMakeThreadContextWrapper (void *Context, void *ThreadHandle)
 
static void ReleaseThreadContextWrapper (void *ThreadContext)
 
static bool GetFunctionDefinitionLocation (const FString &FunctionSymbolName, const FString &FunctionModuleName, FString &OutPathname, uint32 &OutLineNumber, uint32 &OutColumnNumber)
 
- Static Public Member Functions inherited from FGenericPlatformStackWalk
static void Init ()
 
static bool InitStackWalking ()
 
static bool InitStackWalkingForProcess (const FProcHandle &Process)
 
static bool ProgramCounterToHumanReadableString (int32 CurrentCallDepth, uint64 ProgramCounter, ANSICHAR *HumanReadableString, SIZE_T HumanReadableStringSize, FGenericCrashContext *Context=nullptr)
 
static bool SymbolInfoToHumanReadableString (const FProgramCounterSymbolInfo &SymbolInfo, ANSICHAR *HumanReadableString, SIZE_T HumanReadableStringSize)
 
static bool SymbolInfoToHumanReadableStringEx (const FProgramCounterSymbolInfoEx &SymbolInfo, FString &out_HumanReadableString)
 
static void ProgramCounterToSymbolInfo (uint64 ProgramCounter, FProgramCounterSymbolInfo &out_SymbolInfo)
 
static void ProgramCounterToSymbolInfoEx (uint64 ProgramCounter, FProgramCounterSymbolInfoEx &out_SymbolInfo)
 
static uint32 CaptureStackBackTrace (uint64 *BackTrace, uint32 MaxDepth, void *Context=nullptr)
 
static uint32 CaptureThreadStackBackTrace (uint64 ThreadId, uint64 *BackTrace, uint32 MaxDepth, void *Context=nullptr)
 
static FORCENOINLINE void StackWalkAndDump (ANSICHAR *HumanReadableString, SIZE_T HumanReadableStringSize, int32 IgnoreCount, void *Context=nullptr)
 
static void StackWalkAndDump (ANSICHAR *HumanReadableString, SIZE_T HumanReadableStringSize, void *ProgramCounter, void *Context=nullptr)
 
static TArray< FProgramCounterSymbolInfoGetStack (int32 IgnoreCount, int32 MaxDepth=100, void *Context=nullptr)
 
static void ThreadStackWalkAndDump (ANSICHAR *HumanReadableString, SIZE_T HumanReadableStringSize, int32 IgnoreCount, uint32 ThreadId)
 
static void StackWalkAndDumpEx (ANSICHAR *HumanReadableString, SIZE_T HumanReadableStringSize, int32 IgnoreCount, uint32 Flags, void *Context=nullptr)
 
static void StackWalkAndDumpEx (ANSICHAR *HumanReadableString, SIZE_T HumanReadableStringSize, void *ProgramCounter, uint32 Flags, void *Context=nullptr)
 
static FORCEINLINE int32 GetProcessModuleCount ()
 
static FORCEINLINE int32 GetProcessModuleSignatures (FStackWalkModuleInfo *ModuleSignatures, const int32 ModuleSignaturesSize)
 
static TMap< FName, FStringGetSymbolMetaData ()
 

Static Private Member Functions

static bool InitStackWalkingInternal (void *Process, bool bForceReinitOnProcessMismatch)
 

Additional Inherited Members

- Public Types inherited from FGenericPlatformStackWalk
typedef FGenericPlatformStackWalk Base
 
- Static Protected Member Functions inherited from FMicrosoftPlatformStackWalk
static bool ExtractInfoFromModule (void *ProcessHandle, void *ModuleHandle, FStackWalkModuleInfo &OutInfo)
 
- Static Protected Member Functions inherited from FGenericPlatformStackWalk
static bool WantsDetailedCallstacksInNonMonolithicBuilds ()
 

Detailed Description

Windows implementation of the stack walking.

Definition at line 11 of file WindowsPlatformStackWalk.h.

Member Function Documentation

◆ CaptureStackBackTrace()

static FORCENOINLINE uint32 FWindowsPlatformStackWalk::CaptureStackBackTrace ( uint64 * BackTrace,
uint32 MaxDepth,
void * Context = nullptr )
static

◆ CaptureThreadStackBackTrace()

static uint32 FWindowsPlatformStackWalk::CaptureThreadStackBackTrace ( uint64 ThreadId,
uint64 * BackTrace,
uint32 MaxDepth,
void * Context = nullptr )
static

◆ GetDownstreamStorage()

static FString FWindowsPlatformStackWalk::GetDownstreamStorage ( )
static

Get downstream storage with downloaded from remote symbol storage files.

◆ GetFunctionDefinitionLocation()

static bool FWindowsPlatformStackWalk::GetFunctionDefinitionLocation ( const FString & FunctionSymbolName,
const FString & FunctionModuleName,
FString & OutPathname,
uint32 & OutLineNumber,
uint32 & OutColumnNumber )
static

Returns the source file pathname, line and column where the specified function is defined.

The implementation extracts the information from the debug engine and the debug symbols and takes care of loading the debug symbols if the debug engine was configured to load symbols on demand. This function can be expensive if the debug symbols needs to be loaded.

Parameters
FunctionSymbolNameThe function name to lookup.
FunctionModuleNameThe module name containing the function to lookup.
OutPathnameThe source file pathname.
OutLineNumberThe line at which the function is defined in the source file.
OutColumnNumberThe offset on the line at which the function is defined in the source file.
Returns
True if the the function location is found, false otherwise.

◆ GetProcessModuleCount()

static int32 FWindowsPlatformStackWalk::GetProcessModuleCount ( )
static

◆ GetProcessModuleSignatures()

static int32 FWindowsPlatformStackWalk::GetProcessModuleSignatures ( FStackWalkModuleInfo * ModuleSignatures,
const int32 ModuleSignaturesSize )
static

◆ GetStack()

static TArray< FProgramCounterSymbolInfo > FWindowsPlatformStackWalk::GetStack ( int32 IgnoreCount,
int32 MaxDepth = 100,
void * Context = nullptr )
static

◆ InitStackWalking()

static bool FWindowsPlatformStackWalk::InitStackWalking ( )
static

◆ InitStackWalkingForProcess()

static bool FWindowsPlatformStackWalk::InitStackWalkingForProcess ( const FProcHandle & Process)
static

◆ InitStackWalkingInternal()

static bool FWindowsPlatformStackWalk::InitStackWalkingInternal ( void * Process,
bool bForceReinitOnProcessMismatch )
staticprivate

◆ MakeThreadContextWrapper()

static void * FWindowsPlatformStackWalk::MakeThreadContextWrapper ( void * Context,
void * ThreadHandle )
static

◆ ProgramCounterToSymbolInfo()

static void FWindowsPlatformStackWalk::ProgramCounterToSymbolInfo ( uint64 ProgramCounter,
FProgramCounterSymbolInfo & out_SymbolInfo )
static

◆ ProgramCounterToSymbolInfoEx()

static void FWindowsPlatformStackWalk::ProgramCounterToSymbolInfoEx ( uint64 ProgramCounter,
FProgramCounterSymbolInfoEx & out_SymbolInfo )
static

◆ RegisterOnModulesChanged()

static void FWindowsPlatformStackWalk::RegisterOnModulesChanged ( )
static

◆ ReleaseThreadContextWrapper()

static void FWindowsPlatformStackWalk::ReleaseThreadContextWrapper ( void * ThreadContext)
static

◆ StackWalkAndDump() [1/2]

static FORCENOINLINE void FWindowsPlatformStackWalk::StackWalkAndDump ( ANSICHAR * HumanReadableString,
SIZE_T HumanReadableStringSize,
int32 IgnoreCount,
void * Context = nullptr )
static

◆ StackWalkAndDump() [2/2]

static void FWindowsPlatformStackWalk::StackWalkAndDump ( ANSICHAR * HumanReadableString,
SIZE_T HumanReadableStringSize,
void * ProgramCounter,
void * Context = nullptr )
static

◆ ThreadStackWalkAndDump()

static void FWindowsPlatformStackWalk::ThreadStackWalkAndDump ( ANSICHAR * HumanReadableString,
SIZE_T HumanReadableStringSize,
int32 IgnoreCount,
uint32 ThreadId )
static

◆ UploadLocalSymbols()

static bool FWindowsPlatformStackWalk::UploadLocalSymbols ( )
static

Upload localy built symbols to network symbol storage.

Use case: Game designers use game from source (without prebuild game .dll-files). In this case all game .dll-files are compiled locally. For post-mortem debug programmers need .dll and .pdb files from designers.


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