UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
StackTracker.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
6#include "Containers/Map.h"
8#include "CoreTypes.h"
10
11class FOutputDevice;
12class FString;
13
14
19{
20public:
22 static constexpr int32 MAX_BACKTRACE_DEPTH = 50;
33
35 typedef void (*StackTrackerUpdateFn)( const FCallStack& CallStack, void* UserData);
40
41 static void DefaultDeleteUserDataFn(void* UserData);
42
45
52 CORE_API void CaptureStackTrace(int32 EntriesToIgnore = 2, void* UserData = nullptr, int32 StackLen = MAX_int32, bool bLookupStringsForAliasRemoval = false);
53
58
61
64 CORE_API void ToggleTracking(bool bEnable, bool bSilent);
65
66private:
67
69 TArray<FCallStack> CallStacks;
71 TMap<uint32,int32> CRCToCallStackIndexMap;
73 TMap<uint64,uint64> AliasMap;
75 TMap<FString,uint64> StringAliasMap;
77 bool bAvoidCapturing;
79 bool bIsEnabled;
81 uint64 StartFrameCounter;
83 uint64 StopFrameCounter;
84
86 StackTrackerUpdateFn UpdateFn;
88 StackTrackerReportFn ReportFn;
90 StackTrackerDeleteUserDataFn DeleteUserDataFn;
91};
92
93
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define MAX_int32
Definition NumericLimits.h:25
Definition OutputDevice.h:133
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition StackTracker.h:25
int64 StackCount
Definition StackTracker.h:27
void * UserData
Definition StackTracker.h:31
uint64 Addresses[MAX_BACKTRACE_DEPTH]
Definition StackTracker.h:29
Definition StackTracker.h:19
CORE_API void CaptureStackTrace(int32 EntriesToIgnore=2, void *UserData=nullptr, int32 StackLen=MAX_int32, bool bLookupStringsForAliasRemoval=false)
Definition StackTracker.cpp:45
void(* StackTrackerReportFn)(const FCallStack &CallStack, uint64 TotalStackCount, FOutputDevice &Ar)
Definition StackTracker.h:37
static constexpr int32 MAX_BACKTRACE_DEPTH
Definition StackTracker.h:22
void(* StackTrackerDeleteUserDataFn)(void *)
Definition StackTracker.h:39
CORE_API void ResetTracking()
Definition StackTracker.cpp:256
CORE_API void ToggleTracking()
Definition StackTracker.cpp:278
CORE_API void DumpStackTraces(int32 StackThreshold, FOutputDevice &Ar, float SampleCountCorrectionFactor=1.0)
Definition StackTracker.cpp:152
void(* StackTrackerUpdateFn)(const FCallStack &CallStack, void *UserData)
Definition StackTracker.h:35
static void DefaultDeleteUserDataFn(void *UserData)
Definition StackTracker.cpp:35