UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
WindowsPlatformStackWalk.cpp File Reference
#include "Windows/WindowsPlatformStackWalk.h"
#include "Async/RecursiveWordMutex.h"
#include "Async/UniqueLock.h"
#include "HAL/PlatformMemory.h"
#include "HAL/PlatformMisc.h"
#include "HAL/PlatformMutex.h"
#include "Logging/LogMacros.h"
#include "Math/UnrealMathUtility.h"
#include "HAL/UnrealMemory.h"
#include "Containers/StringConv.h"
#include "Containers/UnrealString.h"
#include "UObject/NameTypes.h"
#include "Misc/ScopeLock.h"
#include "Misc/Paths.h"
#include "Misc/CommandLine.h"
#include "HAL/PlatformProcess.h"
#include "CoreGlobals.h"
#include "Misc/ConfigCacheIni.h"
#include "Misc/OutputDeviceRedirector.h"
#include "Windows/AllowWindowsPlatformTypes.h"
#include <DbgHelp.h>
#include <Shlwapi.h>
#include <TlHelp32.h>
#include <Psapi.h>
#include "Windows/HideWindowsPlatformTypes.h"
#include "Modules/ModuleManager.h"

Classes

struct  FWindowsThreadContextWrapper
 

Macros

#define USE_FAST_STACKTRACE   1
 
#define USE_SLOW_STACKTRACE   0
 
#define ALLOW_UNREAL_ACCESS_TO_NT_SYMBOL_PATH   1
 
#define ON_DEMAND_SYMBOL_LOADING   1
 

Typedefs

typedef bool(WINAPITFEnumProcesses) (uint32 *lpidProcess, uint32 cb, uint32 *cbNeeded)
 
typedef bool(WINAPITFEnumProcessModules) (HANDLE hProcess, HMODULE *lphModule, uint32 cb, LPDWORD lpcbNeeded)
 
typedef uint32(WINAPITFGetModuleBaseName) (HANDLE hProcess, HMODULE hModule, LPWSTR lpBaseName, uint32 nSize)
 
typedef uint32(WINAPITFGetModuleFileNameEx) (HANDLE hProcess, HMODULE hModule, LPWSTR lpFilename, uint32 nSize)
 
typedef bool(WINAPITFGetModuleInformation) (HANDLE hProcess, HMODULE hModule, LPMODULEINFO lpmodinfo, uint32 cb)
 

Functions

FString GetRemoteStorage (const FString &DownstreamStorage)
 
FString GetSymbolSearchPath ()
 
HMODULE * GetProcessModules (HANDLE ProcessHandle)
 
void LoadSymbolsForModule (HMODULE ModuleHandle, const FString &RemoteStorage)
 
void LoadSymbolsForProcessModules (const FString &RemoteStorage)
 
void LoadSymbolsForModuleByAddress (uint64 Address, const FString &RemoteStorage, bool bShouldReloadModuleMissingSymbols)
 
NTSYSAPI uint16 NTAPI RtlCaptureStackBackTrace (__in uint32 FramesToSkip, __in uint32 FramesToCapture, __out_ecount(FramesToCapture) PVOID *BackTrace, __out_opt PDWORD BackTraceHash)
 

Macro Definition Documentation

◆ ALLOW_UNREAL_ACCESS_TO_NT_SYMBOL_PATH

#define ALLOW_UNREAL_ACCESS_TO_NT_SYMBOL_PATH   1

◆ ON_DEMAND_SYMBOL_LOADING

#define ON_DEMAND_SYMBOL_LOADING   1

◆ USE_FAST_STACKTRACE

#define USE_FAST_STACKTRACE   1

◆ USE_SLOW_STACKTRACE

#define USE_SLOW_STACKTRACE   0

Typedef Documentation

◆ TFEnumProcesses

◆ TFEnumProcessModules

typedef bool(WINAPI * TFEnumProcessModules) (HANDLE hProcess, HMODULE *lphModule, uint32 cb, LPDWORD lpcbNeeded)

◆ TFGetModuleBaseName

typedef uint32(WINAPI * TFGetModuleBaseName) (HANDLE hProcess, HMODULE hModule, LPWSTR lpBaseName, uint32 nSize)

◆ TFGetModuleFileNameEx

typedef uint32(WINAPI * TFGetModuleFileNameEx) (HANDLE hProcess, HMODULE hModule, LPWSTR lpFilename, uint32 nSize)

◆ TFGetModuleInformation

typedef bool(WINAPI * TFGetModuleInformation) (HANDLE hProcess, HMODULE hModule, LPMODULEINFO lpmodinfo, uint32 cb)

Function Documentation

◆ GetProcessModules()

HMODULE * GetProcessModules ( HANDLE  ProcessHandle)

Get process module handle NULL-terminated list. On error this method returns NULL.

IMPORTANT: Returned value must be deallocated by FMemory::Free().

◆ GetRemoteStorage()

FString GetRemoteStorage ( const FString &  DownstreamStorage)

Create path symbol path for remote storage.

◆ GetSymbolSearchPath()

FString GetSymbolSearchPath ( )

◆ LoadSymbolsForModule()

UE_AUTORTFM_ALWAYS_OPEN void LoadSymbolsForModule ( HMODULE  ModuleHandle,
const FString &  RemoteStorage 
)

◆ LoadSymbolsForModuleByAddress()

UE_AUTORTFM_ALWAYS_OPEN void LoadSymbolsForModuleByAddress ( uint64  Address,
const FString &  RemoteStorage,
bool  bShouldReloadModuleMissingSymbols 
)

◆ LoadSymbolsForProcessModules()

void LoadSymbolsForProcessModules ( const FString &  RemoteStorage)

Loads modules for current process.

◆ RtlCaptureStackBackTrace()

NTSYSAPI uint16 NTAPI RtlCaptureStackBackTrace ( __in uint32  FramesToSkip,
__in uint32  FramesToCapture,
__out_ecount(FramesToCapture) PVOID BackTrace,
__out_opt PDWORD  BackTraceHash 
)