577 lines
11 KiB
Plaintext
577 lines
11 KiB
Plaintext
[AutoExpand]
|
|
|
|
;------------------------------------------------------------------------------
|
|
; Unreal Engine classes - [AutoExpand] section
|
|
;------------------------------------------------------------------------------
|
|
|
|
; Unreal Engine
|
|
UObjectBase=<Name>, Class=<Class->Name>, Outer=<Outer->Name>
|
|
UObject=<Name>, Class=<Class->Name>, Outer=<Outer->Name>
|
|
FFontCharacter=X=<USize>,V=<VSize>
|
|
FGuid=<A,X>,<B,X>,<C,X>,<D,X>
|
|
TSetElement<*>=<Value>
|
|
FScriptInterface=<InterfacePointer> (<ObjectPointer>)
|
|
FScriptLocation=Pos=<CodeTop>, Line=<InputLine>
|
|
|
|
;------------------------------------------------------------------------------
|
|
; End Unreal Engine classes - [AutoExpand] section
|
|
;------------------------------------------------------------------------------
|
|
|
|
[Visualizer]
|
|
|
|
;------------------------------------------------------------------------------
|
|
; Unreal Engine classes - [Visualizer] Section
|
|
;------------------------------------------------------------------------------
|
|
|
|
FName {
|
|
preview
|
|
(
|
|
#if(!GFNameDebuggerVisualizersIsUE3)
|
|
(
|
|
#if(!GFNameTableForDebuggerVisualizers)
|
|
(
|
|
#if(($e.Index) < 0x100000)
|
|
(
|
|
#if(($e.Index) >= 0)
|
|
(
|
|
#if(!!GFNameTableForDebuggerVisualizers_MT)
|
|
(
|
|
#if(!!(((FNameEntry***)GFNameTableForDebuggerVisualizers_MT)[$e.Index / 0x4000]))
|
|
(
|
|
#if(!!(((FNameEntry***)GFNameTableForDebuggerVisualizers_MT)[$e.Index / 0x4000][$e.Index % 0x4000]))
|
|
(
|
|
#if(($e.Number) > 0)
|
|
(
|
|
#if(((((FNameEntry***)GFNameTableForDebuggerVisualizers_MT)[$e.Index / 0x4000][$e.Index % 0x4000])->Index) & 1)
|
|
(
|
|
#([(((FNameEntry***)GFNameTableForDebuggerVisualizers_MT)[$e.Index / 0x4000][$e.Index % 0x4000])->UniName, su], "_", ($e.Number)-1)
|
|
)
|
|
#else
|
|
(
|
|
#([(((FNameEntry***)GFNameTableForDebuggerVisualizers_MT)[$e.Index / 0x4000][$e.Index % 0x4000])->AnsiName, s], "_", ($e.Number)-1)
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
#if(((((FNameEntry***)GFNameTableForDebuggerVisualizers_MT)[$e.Index / 0x4000][$e.Index % 0x4000])->Index) & 1)
|
|
(
|
|
#([(((FNameEntry***)GFNameTableForDebuggerVisualizers_MT)[$e.Index / 0x4000][$e.Index % 0x4000])->UniName, su])
|
|
)
|
|
#else
|
|
(
|
|
#([(((FNameEntry***)GFNameTableForDebuggerVisualizers_MT)[$e.Index / 0x4000][$e.Index % 0x4000])->AnsiName, s])
|
|
)
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
"Invalid3_BogusEntry"
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
"Invalid_BogusBucketPtr"
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
"Invalid_BogusTablePtr"
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
"Invalid_IndexNegative"
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
"Invalid_IndexTooLarge"
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
#if(($e.Index) < (GFNameTableForDebuggerVisualizers->ArrayNum))
|
|
(
|
|
#if(($e.Index) >= 0)
|
|
(
|
|
#if(($e.Number) > 0)
|
|
(
|
|
#if(((((FNameEntry**)GFNameTableForDebuggerVisualizers->AllocatorInstance.Data)[$e.Index])->Index) & 1)
|
|
(
|
|
#([(((FNameEntry**)GFNameTableForDebuggerVisualizers->AllocatorInstance.Data)[$e.Index])->UniName, su], "_", ($e.Number)-1)
|
|
)
|
|
#else
|
|
(
|
|
#([(((FNameEntry**)GFNameTableForDebuggerVisualizers->AllocatorInstance.Data)[$e.Index])->AnsiName, s], "_", ($e.Number)-1)
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
#if(((((FNameEntry**)GFNameTableForDebuggerVisualizers->AllocatorInstance.Data)[$e.Index])->Index) & 1)
|
|
(
|
|
#([(((FNameEntry**)GFNameTableForDebuggerVisualizers->AllocatorInstance.Data)[$e.Index])->UniName, su])
|
|
)
|
|
#else
|
|
(
|
|
#([(((FNameEntry**)GFNameTableForDebuggerVisualizers->AllocatorInstance.Data)[$e.Index])->AnsiName, s])
|
|
)
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
"UE3_InvalidNegativeIndex"
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
"InvalidUE3_IndexTooLarge"
|
|
)
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
#if(($e.Index) < ($e.Names.ArrayNum))
|
|
(
|
|
#if(($e.Index) >= 0)
|
|
(
|
|
#if(($e.Number) > 0)
|
|
(
|
|
#if(((((FNameEntry**)$e.Names.AllocatorInstance.Data)[$e.Index])->Index) & 1)
|
|
(
|
|
#([(((FNameEntry**)$e.Names.AllocatorInstance.Data)[$e.Index])->UniName, su], "_", ($e.Number)-1)
|
|
)
|
|
#else
|
|
(
|
|
#([(((FNameEntry**)$e.Names.AllocatorInstance.Data)[$e.Index])->AnsiName, s], "_", ($e.Number)-1)
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
#if(((((FNameEntry**)$e.Names.AllocatorInstance.Data)[$e.Index])->Index) & 1)
|
|
(
|
|
#([(((FNameEntry**)$e.Names.AllocatorInstance.Data)[$e.Index])->UniName, su])
|
|
)
|
|
#else
|
|
(
|
|
#([(((FNameEntry**)$e.Names.AllocatorInstance.Data)[$e.Index])->AnsiName, s])
|
|
)
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
"InvalidUE3_InvalidNegativeIndex_Site2"
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
"InvalidUE3_IndexTooLarge_Site2"
|
|
)
|
|
)
|
|
)
|
|
}
|
|
|
|
TArray<*,TInlineAllocator<*,*> >|TArray<*,TFixedAllocator<*> > {
|
|
preview
|
|
(
|
|
#if(($e.ArrayNum) >= 0)
|
|
(
|
|
#if(($e.ArrayNum) == 0)
|
|
(
|
|
"Empty"
|
|
)
|
|
#else
|
|
(
|
|
#if(($e.ArrayNum) <= ($e.ArrayMax))
|
|
(
|
|
#("Num=", $e.ArrayNum)
|
|
)
|
|
#else
|
|
(
|
|
"Invalid"
|
|
)
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
"Invalid"
|
|
)
|
|
)
|
|
children
|
|
(
|
|
#if(($e.ArrayNum) >= 0)
|
|
(
|
|
#if(($e.ArrayNum) <= ($e.ArrayMax))
|
|
(
|
|
#if(($e.ArrayNum) > 0)
|
|
(
|
|
#if(($e.ArrayNum) > $T2)
|
|
(
|
|
#(
|
|
#array
|
|
(
|
|
expr: *(($T1 *)$e.AllocatorInstance.SecondaryData.Data + $i),
|
|
size: $e.ArrayNum
|
|
),
|
|
#([Members]: [$e,!])
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
#(
|
|
#array
|
|
(
|
|
expr: *(($T1 *)$e.AllocatorInstance.InlineData + $i),
|
|
size: $e.ArrayNum
|
|
),
|
|
#([Members]: [$e,!])
|
|
)
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
[Members]: [$e,!]
|
|
)
|
|
)
|
|
)
|
|
)
|
|
}
|
|
|
|
TArray<*,*> {
|
|
preview
|
|
(
|
|
#if(($e.ArrayNum) >= 0)
|
|
(
|
|
#if(($e.ArrayNum) == 0)
|
|
(
|
|
"Empty"
|
|
)
|
|
#else
|
|
(
|
|
#if(($e.ArrayNum) <= ($e.ArrayMax))
|
|
(
|
|
#("Num=", $e.ArrayNum)
|
|
)
|
|
#else
|
|
(
|
|
"Invalid"
|
|
)
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
"Invalid"
|
|
)
|
|
)
|
|
children
|
|
(
|
|
#if(($e.ArrayNum) >= 0)
|
|
(
|
|
#if(($e.ArrayNum) <= ($e.ArrayMax))
|
|
(
|
|
#if(($e.ArrayNum) > 0)
|
|
(
|
|
#(
|
|
#array
|
|
(
|
|
expr: *(($T1 *)$e.AllocatorInstance.Data + $i),
|
|
size: $e.ArrayNum
|
|
),
|
|
#([Members]: [$e,!])
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
[Members]: [$e,!]
|
|
)
|
|
)
|
|
)
|
|
)
|
|
}
|
|
|
|
TIndirectArray<*,*> {
|
|
preview
|
|
(
|
|
#if(($e.ArrayNum) >= 0)
|
|
(
|
|
#if(($e.ArrayNum) == 0)
|
|
(
|
|
"Empty"
|
|
)
|
|
#else
|
|
(
|
|
#if(($e.ArrayNum) <= ($e.ArrayMax))
|
|
(
|
|
#("Num=", $e.ArrayNum)
|
|
)
|
|
#else
|
|
(
|
|
"Invalid"
|
|
)
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
"Invalid"
|
|
)
|
|
)
|
|
children
|
|
(
|
|
#if(($e.ArrayNum) >= 0)
|
|
(
|
|
#if(($e.ArrayNum) <= ($e.ArrayMax))
|
|
(
|
|
#if(($e.ArrayNum) > 0)
|
|
(
|
|
#(
|
|
#array
|
|
(
|
|
expr: *(($T1 **)$e.AllocatorInstance.Data + $i),
|
|
size: $e.ArrayNum
|
|
),
|
|
#([Members]: [$e,!])
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
[Members]: [$e,!]
|
|
)
|
|
)
|
|
)
|
|
)
|
|
}
|
|
|
|
TBitArray<*> {
|
|
preview
|
|
(
|
|
#($e.NumBits, " / ", $e.MaxBits)
|
|
)
|
|
children
|
|
(
|
|
#if(($e.NumBits >= 0) && ($e.NumBits <= $e.MaxBits))
|
|
(
|
|
#if($e.SecondaryData.Data != 0)
|
|
(
|
|
#array
|
|
(
|
|
expr: (((unsigned long*)$e.SecondaryData.Data)[$i / 0x20] >> ($i % 0x20)),
|
|
size: $e.NumBits
|
|
) : (bool)($e & 1)
|
|
)
|
|
#else
|
|
(
|
|
#array
|
|
(
|
|
expr: (((unsigned long*)$e.InlineData)[$i / 0x20] >> ($i % 0x20)),
|
|
size: $e.NumBits
|
|
) : (bool)($e & 1)
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
"Invalid"
|
|
)
|
|
)
|
|
}
|
|
|
|
TSparseArray<*,*> {
|
|
preview
|
|
(
|
|
#if(($e.Data.ArrayNum) > 0)
|
|
(
|
|
#if(($e.Data.ArrayNum) <= ($e.Data.ArrayMax))
|
|
(
|
|
#("Num=", ($e.Data.ArrayNum- $e.NumFreeIndices))
|
|
)
|
|
#else
|
|
(
|
|
"Invalid"
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
"Empty"
|
|
)
|
|
)
|
|
children
|
|
(
|
|
#if($e.Data.ArrayNum >= 0 && $e.Data.ArrayNum <= $e.Data.ArrayMax)
|
|
(
|
|
#if(($e.Data.ArrayNum) > 0)
|
|
(
|
|
#(
|
|
#array
|
|
(
|
|
expr: #if ($e.AllocationFlags.SecondaryData.Data != 0)
|
|
(
|
|
#if(((*((uint32*)($e.AllocationFlags.SecondaryData.Data + ($i/32))))>>$i)&1)
|
|
(
|
|
((($T1 *)$e.Data.AllocatorInstance.Data)[$i])
|
|
)
|
|
#else
|
|
(
|
|
#("Invalid")
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
#if(((*((uint32*)($e.AllocationFlags.InlineData + ($i/32))))>>$i)&1)
|
|
(
|
|
((($T1 *)$e.Data.AllocatorInstance.Data)[$i])
|
|
)
|
|
#else
|
|
(
|
|
#("Invalid")
|
|
)
|
|
),
|
|
size: $e.Data.ArrayNum
|
|
),
|
|
#([Members]: [$e,!])
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
#([Members]: [$e,!])
|
|
)
|
|
)
|
|
|
|
)
|
|
}
|
|
|
|
TSetElement<*> {
|
|
preview
|
|
(
|
|
#($e.Value)
|
|
)
|
|
}
|
|
|
|
TPair<*,*> {
|
|
preview
|
|
(
|
|
#("(", $e.Key, ", ", $e.Value, ")")
|
|
)
|
|
}
|
|
|
|
TMapBase<*,*,*,*,*>|TMap<*,*,*,*>|TMultiMap<*,*,*> {
|
|
preview
|
|
(
|
|
#if($c.Pairs.Elements.Data.ArrayNum - $c.Pairs.Elements.NumFreeIndices > 0)
|
|
(
|
|
#if(($c.Pairs.Elements.Data.ArrayNum - $c.Pairs.Elements.NumFreeIndices) <= ($c.Pairs.Elements.Data.ArrayMax))
|
|
(
|
|
#("Num=", ($c.Pairs.Elements.Data.ArrayNum - $c.Pairs.Elements.NumFreeIndices))
|
|
)
|
|
#else
|
|
(
|
|
"Invalid"
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
"Empty"
|
|
)
|
|
)
|
|
|
|
children
|
|
(
|
|
#(
|
|
#array
|
|
(
|
|
expr: #if ($c.Pairs.Elements.AllocationFlags.SecondaryData.Data != 0)
|
|
(
|
|
#if(((*((uint32*)($c.Pairs.Elements.AllocationFlags.SecondaryData.Data + ($i/32))))>>$i)&1)
|
|
(
|
|
&((TSetElement<TPair<$T1,$T2> > *)$c.Pairs.Elements.Data.AllocatorInstance.Data)[$i]
|
|
)
|
|
#else
|
|
(
|
|
"Invalid"
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
#if(((*((uint32*)($c.Pairs.Elements.AllocationFlags.InlineData + ($i/32))))>>$i)&1)
|
|
(
|
|
&((TSetElement<TPair<$T1,$T2> > *)$c.Pairs.Elements.Data.AllocatorInstance.Data)[$i]
|
|
)
|
|
#else
|
|
(
|
|
"Invalid"
|
|
)
|
|
),
|
|
size: (($c.Pairs.Elements.Data.ArrayNum - $c.Pairs.Elements.NumFreeIndices > 0) && ($c.Pairs.Elements.Data.ArrayNum <= $c.Pairs.Elements.Data.ArrayMax)) * $c.Pairs.Elements.Data.ArrayNum
|
|
) : $e.Value,
|
|
[Members]: [$c,!]
|
|
)
|
|
)
|
|
}
|
|
|
|
TDoubleLinkedList<*>|FEditPropertyChain {
|
|
children
|
|
(
|
|
#(
|
|
#list
|
|
(
|
|
head: $e.HeadNode,
|
|
next: NextNode,
|
|
size: $c.ListSize
|
|
) : $e.Value,
|
|
#([Members]: [$e,!])
|
|
)
|
|
)
|
|
}
|
|
|
|
FString|FStringOutputDevice {
|
|
preview
|
|
(
|
|
#if((($e.Data.ArrayNum) <= ($e.Data.ArrayMax)) && (($e.Data.ArrayNum) >= 0))
|
|
(
|
|
#("(", ($e.Data.ArrayNum - 1), ") ", [$e.Data.AllocatorInstance.Data,su])
|
|
)
|
|
#else ( "Invalid" )
|
|
)
|
|
|
|
stringview
|
|
(
|
|
#if((($e.Data.ArrayNum) <= ($e.Data.ArrayMax)) && (($e.Data.ArrayNum) >= 0)) ( [$e.Data.AllocatorInstance.Data,sub] )
|
|
#else ( "Invalid" )
|
|
)
|
|
}
|
|
|
|
FWeakObjectPtr|TWeakObjectPtr<*>|TAutoWeakObjectPtr<*>{
|
|
preview
|
|
(
|
|
#if ($e.ObjectSerialNumber < 1)
|
|
(
|
|
"NULL"
|
|
)
|
|
#else
|
|
(
|
|
#if (*((*(*GSerialNumberBlocksForDebugVisualizers + ($e.ObjectIndex / 0x4000))) + ($e.ObjectIndex % 0x4000)) != $e.ObjectSerialNumber)
|
|
(
|
|
"STALE"
|
|
)
|
|
#else
|
|
(
|
|
*((UObjectBase**)GObjectArrayForDebugVisualizers->AllocatorInstance.Data + $e.ObjectIndex)
|
|
)
|
|
)
|
|
)
|
|
children
|
|
(
|
|
#if ($e.ObjectSerialNumber > 0 && *((*(*GSerialNumberBlocksForDebugVisualizers + ($e.ObjectIndex / 0x4000))) + ($e.ObjectIndex % 0x4000)) == $e.ObjectSerialNumber)
|
|
(
|
|
#(
|
|
#([Target]: [*((UObjectBase**)GObjectArrayForDebugVisualizers->AllocatorInstance.Data + $e.ObjectIndex),!]),
|
|
#([Members]: [$e,!])
|
|
)
|
|
)
|
|
#else
|
|
(
|
|
#([Members]: [$e,!])
|
|
)
|
|
)
|
|
}
|
|
|
|
;------------------------------------------------------------------------------
|
|
; Unreal Engine classes - End of [Visualizer] Section
|
|
;------------------------------------------------------------------------------ |