All checks were successful
Bigfoot / Build & Test Debug with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 5m23s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 5m14s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 5m40s
Bigfoot / Build & Test Debug with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 5m41s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 5m53s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 5m54s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 7m0s
Bigfoot / Build & Test RelWithDebInfo with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 6m57s
Bigfoot / Build & Test Release with ./ConanProfiles/clang (Unity Build: OFF) (push) Successful in 5m56s
Bigfoot / Build & Test Release with ./ConanProfiles/clang (Unity Build: ON) (push) Successful in 5m55s
Bigfoot / Build & Test Release with ./ConanProfiles/clang_asan (Unity Build: OFF) (push) Successful in 6m35s
Bigfoot / Build & Test Release with ./ConanProfiles/clang_asan (Unity Build: ON) (push) Successful in 6m30s
Bigfoot / Clang Format Checks (push) Successful in 12s
909 lines
48 KiB
XML
909 lines
48 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
|
|
<!--
|
|
This is a Microsoft natvis file, which allows visualization of complex variables in the
|
|
Microsoft debugger starting with VS2012. It's a successor to the AutoExp.dat file format.
|
|
|
|
This file needs to go into your C:\Users\<user>\Documents\Visual Studio 2011\Visualizers\
|
|
folder. Microsoft documentation states that it should go into a 2012 folder, but testing
|
|
in June of 2013 suggests that it still needs to be the 2011 folder.
|
|
|
|
You don't need to restart Visual Studio to use it, you just need to restart the debug
|
|
session. You can have multiple .natvis files and they will all be used.
|
|
|
|
VS2017 natvis documentation:
|
|
https://docs.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects
|
|
-->
|
|
|
|
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
|
|
|
|
<Type Name="eastl::unique_ptr<*>">
|
|
<DisplayString Condition="mPair.mFirst != nullptr">({(void*)mPair.mFirst} = {*mPair.mFirst})</DisplayString>
|
|
<DisplayString Condition="mPair.mFirst == nullptr">({nullptr})</DisplayString>
|
|
<Expand>
|
|
<Item Name="[pointer]">(void*)mPair.mFirst</Item>
|
|
<Item Name="[value]">*mPair.mFirst</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::shared_ptr<*>">
|
|
<DisplayString Condition="mpValue != nullptr">({(void*)mpValue} = {*mpValue})</DisplayString>
|
|
<DisplayString Condition="mpValue == nullptr">({nullptr})</DisplayString>
|
|
<Expand>
|
|
<Item Name="[pointer]">(void*)mpValue</Item>
|
|
<Item Name="[value]">*mpValue</Item>
|
|
<Item Name="[reference count]">mpRefCount->mRefCount</Item>
|
|
<Item Name="[weak reference count]">mpRefCount->mWeakRefCount</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::weak_ptr<*>">
|
|
<DisplayString>{((mpRefCount && mpRefCount->mRefCount) ? mpValue : nullptr)}</DisplayString>
|
|
<Expand>
|
|
<ExpandedItem>mpRefCount && mpRefCount->mRefCount ? mpValue : nullptr</ExpandedItem>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::array<*,*>">
|
|
<DisplayString Condition="$T2 == 0">[{$T2}] {{}}</DisplayString>
|
|
<DisplayString Condition="$T2 == 1">[{$T2}] {{ {*mValue} }}</DisplayString>
|
|
<DisplayString Condition="$T2 == 2">[{$T2}] {{ {*mValue}, {*(mValue+1)} }}</DisplayString>
|
|
<DisplayString Condition="$T2 == 3">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)} }}</DisplayString>
|
|
<DisplayString Condition="$T2 == 4">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)}, {*(mValue+3)} }}</DisplayString>
|
|
<DisplayString Condition="$T2 == 5">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)}, {*(mValue+3)}, {*(mValue+4)} }}</DisplayString>
|
|
<DisplayString Condition="$T2 == 6">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)}, {*(mValue+3)}, {*(mValue+4)}, {*(mValue+5)} }}</DisplayString>
|
|
<DisplayString Condition="$T2 > 6">[{$T2}] {{ {*mValue}, {*(mValue+1)}, {*(mValue+2)}, {*(mValue+3)}, {*(mValue+4)}, {*(mValue+5)}, ... }}</DisplayString>
|
|
<Expand>
|
|
<Item Name="[size]">$T2</Item>
|
|
<ArrayItems>
|
|
<Size>$T2</Size>
|
|
<ValuePointer>mValue</ValuePointer>
|
|
</ArrayItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::basic_string<*>">
|
|
<DisplayString Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">"{mPair.mFirst.heap.mpBegin,sb}"</DisplayString>
|
|
<DisplayString Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">"{mPair.mFirst.sso.mData,sb}"</DisplayString>
|
|
<Expand>
|
|
<Item Name="[length]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.heap.mnSize</Item>
|
|
<Item Name="[capacity]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">(mPair.mFirst.heap.mnCapacity & ~kHeapMask)</Item>
|
|
<Item Name="[value]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.heap.mpBegin,sb</Item>
|
|
|
|
<Item Name="[length]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">(SSOLayout::SSO_CAPACITY - mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize)</Item>
|
|
<Item Name="[capacity]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">SSOLayout::SSO_CAPACITY</Item>
|
|
<Item Name="[value]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.sso.mData,sb</Item>
|
|
|
|
<Item Name="[uses heap]">!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
|
|
<Type Name="eastl::basic_string<wchar_t,*>">
|
|
<DisplayString Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">{mPair.mFirst.heap.mpBegin,su}</DisplayString>
|
|
<DisplayString Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">{mPair.mFirst.sso.mData,su}</DisplayString>
|
|
<Expand>
|
|
<Item Name="[length]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.heap.mnSize</Item>
|
|
<Item Name="[capacity]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">(mPair.mFirst.heap.mnCapacity & ~kHeapMask)</Item>
|
|
<Item Name="[value]" Condition="!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.heap.mpBegin,su</Item>
|
|
|
|
<Item Name="[length]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">(SSOLayout::SSO_CAPACITY - mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize)</Item>
|
|
<Item Name="[capacity]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">SSOLayout::SSO_CAPACITY</Item>
|
|
<Item Name="[value]" Condition="!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)">mPair.mFirst.sso.mData,su</Item>
|
|
|
|
<Item Name="[uses heap]">!!(mPair.mFirst.sso.mRemainingSizeField.mnRemainingSize & kSSOMask)</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::pair<*>">
|
|
<DisplayString>({first}, {second})</DisplayString>
|
|
<Expand>
|
|
<Item Name="first">first</Item>
|
|
<Item Name="second">second</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::span<*,-1>" Priority="High">
|
|
<DisplayString Condition="mStorage.mnSize == 0">[{mStorage.mnSize}] {{}}</DisplayString>
|
|
<DisplayString Condition="mStorage.mnSize == 1">[{mStorage.mnSize}] {{ {*mStorage.mpData} }}</DisplayString>
|
|
<DisplayString Condition="mStorage.mnSize == 2">[{mStorage.mnSize}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)} }}</DisplayString>
|
|
<DisplayString Condition="mStorage.mnSize == 3">[{mStorage.mnSize}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)} }}</DisplayString>
|
|
<DisplayString Condition="mStorage.mnSize == 4">[{mStorage.mnSize}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)}, {*(mStorage.mpData+3)} }}</DisplayString>
|
|
<DisplayString Condition="mStorage.mnSize == 5">[{mStorage.mnSize}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)}, {*(mStorage.mpData+3)}, {*(mStorage.mpData+4)} }}</DisplayString>
|
|
<DisplayString Condition="mStorage.mnSize == 6">[{mStorage.mnSize}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)}, {*(mStorage.mpData+3)}, {*(mStorage.mpData+4)}, {*(mStorage.mpData+5)} }}</DisplayString>
|
|
<DisplayString Condition="mStorage.mnSize > 6">[{mStorage.mnSize}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)}, {*(mStorage.mpData+3)}, {*(mStorage.mpData+4)}, {*(mStorage.mpData+5)}, ... }}</DisplayString>
|
|
<Expand>
|
|
<Synthetic Name="Specialization">
|
|
<DisplayString>DynamicSize</DisplayString>
|
|
</Synthetic>
|
|
<Item Name="[size]">mStorage.mnSize</Item>
|
|
<ArrayItems>
|
|
<Size>mStorage.mnSize</Size>
|
|
<ValuePointer>mStorage.mpData</ValuePointer>
|
|
</ArrayItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::span<*,*>">
|
|
<DisplayString Condition="$T2 == 0">[{$T2}] {{}}</DisplayString>
|
|
<DisplayString Condition="$T2 == 1">[{$T2}] {{ {*mStorage.mpData} }}</DisplayString>
|
|
<DisplayString Condition="$T2 == 2">[{$T2}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)} }}</DisplayString>
|
|
<DisplayString Condition="$T2 == 3">[{$T2}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)} }}</DisplayString>
|
|
<DisplayString Condition="$T2 == 4">[{$T2}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)}, {*(mStorage.mpData+3)} }}</DisplayString>
|
|
<DisplayString Condition="$T2 == 5">[{$T2}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)}, {*(mStorage.mpData+3)}, {*(mStorage.mpData+4)} }}</DisplayString>
|
|
<DisplayString Condition="$T2 == 6">[{$T2}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)}, {*(mStorage.mpData+3)}, {*(mStorage.mpData+4)}, {*(mStorage.mpData+5)} }}</DisplayString>
|
|
<DisplayString Condition="$T2 > 6">[{$T2}] {{ {*mStorage.mpData}, {*(mStorage.mpData+1)}, {*(mStorage.mpData+2)}, {*(mStorage.mpData+3)}, {*(mStorage.mpData+4)}, {*(mStorage.mpData+5)}, ... }}</DisplayString>
|
|
<Expand>
|
|
<Synthetic Name="Specialization">
|
|
<DisplayString>ConstantSize</DisplayString>
|
|
</Synthetic>
|
|
<Item Name="[size]">$T2</Item>
|
|
<ArrayItems>
|
|
<Size>$T2</Size>
|
|
<ValuePointer>mStorage.mpData</ValuePointer>
|
|
</ArrayItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::VectorBase<*>">
|
|
<DisplayString Condition="mpEnd == mpBegin">[{mpEnd - mpBegin}] {{}}</DisplayString>
|
|
<DisplayString Condition="mpEnd - mpBegin == 1">[{mpEnd - mpBegin}] {{ {*mpBegin} }}</DisplayString>
|
|
<DisplayString Condition="mpEnd - mpBegin == 2">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)} }}</DisplayString>
|
|
<DisplayString Condition="mpEnd - mpBegin == 3">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)} }}</DisplayString>
|
|
<DisplayString Condition="mpEnd - mpBegin == 4">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)}, {*(mpBegin+3)} }}</DisplayString>
|
|
<DisplayString Condition="mpEnd - mpBegin == 5">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)}, {*(mpBegin+3)}, {*(mpBegin+4)} }}</DisplayString>
|
|
<DisplayString Condition="mpEnd - mpBegin == 6">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)}, {*(mpBegin+3)}, {*(mpBegin+4)}, {*(mpBegin+5)} }}</DisplayString>
|
|
<DisplayString Condition="mpEnd - mpBegin > 6">[{mpEnd - mpBegin}] {{ {*mpBegin}, {*(mpBegin+1)}, {*(mpBegin+2)}, {*(mpBegin+3)}, {*(mpBegin+4)}, {*(mpBegin+5)}, ... }}</DisplayString>
|
|
<Expand>
|
|
<Item Name="[size]">mpEnd - mpBegin</Item>
|
|
<Item Name="[capacity]">mCapacityAllocator.mFirst - mpBegin</Item>
|
|
<ArrayItems>
|
|
<Size>mpEnd - mpBegin</Size>
|
|
<ValuePointer>mpBegin</ValuePointer>
|
|
</ArrayItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::DequeBase<*,*,*>">
|
|
<DisplayString Condition="mItBegin.mpCurrent == mItEnd.mpCurrent">
|
|
[0] {{}}
|
|
</DisplayString>
|
|
<DisplayString Condition="(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin) == 1">
|
|
[1] {{ {*mItBegin.mpCurrent} }}
|
|
</DisplayString>
|
|
<DisplayString Condition="(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin) != 0">
|
|
[{(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin)}]
|
|
{{
|
|
{*mItBegin.mpCurrent},
|
|
...
|
|
}}
|
|
</DisplayString>
|
|
<Expand>
|
|
<Item Name="[size]">(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin)</Item>
|
|
<IndexListItems>
|
|
<Size>(mItEnd.mpCurrentArrayPtr - mItBegin.mpCurrentArrayPtr) * $T3 + (mItEnd.mpCurrent-mItEnd.mpBegin) - (mItBegin.mpCurrent-mItBegin.mpBegin)</Size>
|
|
<ValueNode>mItBegin.mpCurrentArrayPtr[(mItBegin.mpCurrent-mItBegin.mpBegin + $i) / $T3][(mItBegin.mpCurrent-mItBegin.mpBegin + $i) % $T3]</ValueNode>
|
|
</IndexListItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::DequeIterator<*>">
|
|
<DisplayString>{*mpCurrent}</DisplayString>
|
|
<Expand>
|
|
<Item Name="Value">*mpCurrent</Item>
|
|
<Item Name="Previous" Condition="mpCurrent == mpBegin">*(*(mpCurrentArrayPtr-1) + (mpEnd-mpBegin) - 1)</Item>
|
|
<Item Name="Previous" Condition="mpCurrent != mpBegin">*(mpCurrent-1)</Item>
|
|
<Item Name="Next" Condition="mpCurrent+1 == mpEnd">**(mpCurrentArrayPtr+1)</Item>
|
|
<Item Name="Next" Condition="mpCurrent+1 != mpEnd">*(mpCurrent+1)</Item>
|
|
<Item Name="Begin">mpCurrent == mpBegin</Item>
|
|
<Item Name="End">mpCurrent+1 == mpEnd</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::queue<*>">
|
|
<AlternativeType Name="eastl::priority_queue<*>" />
|
|
<AlternativeType Name="eastl::stack<*>" />
|
|
<DisplayString>{c}</DisplayString>
|
|
<Expand>
|
|
<ExpandedItem>c</ExpandedItem>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::ListBase<*>">
|
|
<DisplayString Condition="mNodeAllocator.mFirst.mpNext == &mNodeAllocator.mFirst">
|
|
[0] {{}}
|
|
</DisplayString>
|
|
<DisplayString Condition="mNodeAllocator.mFirst.mpNext != &mNodeAllocator.mFirst && mNodeAllocator.mFirst.mpNext->mpNext == &mNodeAllocator.mFirst">
|
|
[1] {{ {((eastl::ListNode<$T1>*)mNodeAllocator.mFirst.mpNext)->mValue} }}
|
|
</DisplayString>
|
|
<DisplayString Condition="mNodeAllocator.mFirst.mpNext != &mNodeAllocator.mFirst && mNodeAllocator.mFirst.mpNext->mpNext != &mNodeAllocator.mFirst && mNodeAllocator.mFirst.mpNext->mpNext->mpNext == &mNodeAllocator.mFirst">
|
|
[2]
|
|
{{
|
|
{((eastl::ListNode<$T1>*)mNodeAllocator.mFirst.mpNext)->mValue},
|
|
{((eastl::ListNode<$T1>*)mNodeAllocator.mFirst.mpNext->mpNext)->mValue}
|
|
}}
|
|
</DisplayString>
|
|
<DisplayString Condition="mNodeAllocator.mFirst.mpNext != &mNodeAllocator.mFirst && mNodeAllocator.mFirst.mpNext->mpNext != &mNodeAllocator.mFirst && mNodeAllocator.mFirst.mpNext->mpNext->mpNext != &mNodeAllocator.mFirst">
|
|
[?]
|
|
{{
|
|
{((eastl::ListNode<$T1>*)mNodeAllocator.mFirst.mpNext)->mValue},
|
|
{((eastl::ListNode<$T1>*)mNodeAllocator.mFirst.mpNext->mpNext)->mValue},
|
|
...
|
|
}}
|
|
</DisplayString>
|
|
<Expand>
|
|
<Synthetic Name="NOTE!">
|
|
<DisplayString>Content of lists will repeat indefinitely. Keep that in mind!</DisplayString>
|
|
</Synthetic>
|
|
<LinkedListItems>
|
|
<HeadPointer>mNodeAllocator.mFirst.mpNext</HeadPointer>
|
|
<NextPointer>mpNext</NextPointer>
|
|
<ValueNode>((eastl::ListNode<$T1>*)this)->mValue</ValueNode>
|
|
</LinkedListItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::ListNode<*>">
|
|
<DisplayString>{mValue}</DisplayString>
|
|
<Expand>
|
|
<Item Name="Value">mValue</Item>
|
|
<Item Name="Next">*(eastl::ListNode<$T1>*)mpNext</Item>
|
|
<Item Name="Previous">*(eastl::ListNode<$T1>*)mpPrev</Item>
|
|
<Synthetic Name="NOTE!">
|
|
<DisplayString>Content of lists will repeat indefinitely. Keep that in mind!</DisplayString>
|
|
</Synthetic>
|
|
<Synthetic Name="List">
|
|
<DisplayString>The rest of the list follows:</DisplayString>
|
|
</Synthetic>
|
|
<LinkedListItems>
|
|
<HeadPointer>(eastl::ListNode<$T1>*)mpNext->mpNext</HeadPointer>
|
|
<NextPointer>(eastl::ListNode<$T1>*)mpNext</NextPointer>
|
|
<ValueNode>mValue</ValueNode>
|
|
</LinkedListItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::ListIterator<*>">
|
|
<DisplayString>{*mpNode}</DisplayString>
|
|
<Expand>
|
|
<ExpandedItem>*(eastl::ListNode<$T1>*)mpNode</ExpandedItem>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::SListBase<*>">
|
|
<DisplayString Condition="mNode.mpNext == 0">
|
|
[0] {{}}
|
|
</DisplayString>
|
|
<DisplayString Condition="mNode.mpNext != 0 && mNode.mpNext->mpNext == 0">
|
|
[1]
|
|
{{
|
|
{((eastl::SListNode<$T1>*)mNode.mpNext)->mValue}
|
|
}}
|
|
</DisplayString>
|
|
<DisplayString Condition="mNode.mpNext != 0 && mNode.mpNext->mpNext != 0 && mNode.mpNext->mpNext->mpNext == 0">
|
|
[2]
|
|
{{
|
|
{((eastl::SListNode<$T1>*)mNode.mpNext)->mValue},
|
|
{((eastl::SListNode<$T1>*)mNode.mpNext->mpNext)->mValue}
|
|
}}
|
|
</DisplayString>
|
|
<DisplayString Condition="mNode.mpNext != 0 && mNode.mpNext->mpNext != 0 && mNode.mpNext->mpNext->mpNext != 0">
|
|
[?]
|
|
{{
|
|
{((eastl::SListNode<$T1>*)mNode.mpNext)->mValue},
|
|
{((eastl::SListNode<$T1>*)mNode.mpNext->mpNext)->mValue},
|
|
...
|
|
}}
|
|
</DisplayString>
|
|
<Expand>
|
|
<LinkedListItems>
|
|
<HeadPointer>mNode.mpNext</HeadPointer>
|
|
<NextPointer>mpNext</NextPointer>
|
|
<ValueNode>((eastl::SListNode<$T1>*)this)->mValue</ValueNode>
|
|
</LinkedListItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::SListNode<*>">
|
|
<DisplayString>{mValue}</DisplayString>
|
|
<Expand>
|
|
<Item Name="Value">mValue</Item>
|
|
<Item Name="Next">*(eastl::SListNode<$T1>*)mpNext</Item>
|
|
<Synthetic Name="List">
|
|
<DisplayString>The rest of the list follows:</DisplayString>
|
|
</Synthetic>
|
|
<LinkedListItems>
|
|
<HeadPointer>mpNext == nullptr ? nullptr : (eastl::SListNode<$T1>*)mpNext->mpNext</HeadPointer>
|
|
<NextPointer>(eastl::SListNode<$T1>*)mpNext</NextPointer>
|
|
<ValueNode>mValue</ValueNode>
|
|
</LinkedListItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::SListIterator<*>">
|
|
<DisplayString>{*mpNode}</DisplayString>
|
|
<Expand>
|
|
<ExpandedItem>*(eastl::SListNode<$T1>*)mpNode</ExpandedItem>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::intrusive_list_base">
|
|
<DisplayString Condition="mAnchor.mpNext == &mAnchor">[0] {{}}</DisplayString>
|
|
<DisplayString Condition="mAnchor.mpNext != &mAnchor && mAnchor.mpNext->mpNext == &mAnchor">[1] {{ {mAnchor.mpNext} }}</DisplayString>
|
|
<DisplayString Condition="mAnchor.mpNext != &mAnchor && mAnchor.mpNext->mpNext != &mAnchor">[?] {{ {mAnchor.mpNext}, ... }}</DisplayString>
|
|
<Expand>
|
|
<Synthetic Name="NOTE!">
|
|
<DisplayString>Content of intrusive lists will repeat indefinitely. Keep that in mind!</DisplayString>
|
|
</Synthetic>
|
|
<LinkedListItems>
|
|
<HeadPointer>mAnchor.mpNext</HeadPointer>
|
|
<NextPointer>mpNext</NextPointer>
|
|
<ValueNode>*this</ValueNode>
|
|
</LinkedListItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::intrusive_list<*>">
|
|
<DisplayString Condition="mAnchor.mpNext == &mAnchor">[0] {{}}</DisplayString>
|
|
<DisplayString Condition="mAnchor.mpNext != &mAnchor && mAnchor.mpNext->mpNext == &mAnchor">[1] {{ {mAnchor.mpNext} }}</DisplayString>
|
|
<DisplayString Condition="mAnchor.mpNext != &mAnchor && mAnchor.mpNext->mpNext != &mAnchor">[?] {{ {mAnchor.mpNext}, ... }}</DisplayString>
|
|
<Expand>
|
|
<Synthetic Name="NOTE!">
|
|
<DisplayString>Content of intrusive lists will repeat indefinitely. Keep that in mind!</DisplayString>
|
|
</Synthetic>
|
|
<LinkedListItems>
|
|
<HeadPointer>mAnchor.mpNext</HeadPointer>
|
|
<NextPointer>mpNext</NextPointer>
|
|
<ValueNode>*(($T1*)this)</ValueNode>
|
|
</LinkedListItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::intrusive_list_iterator<*>">
|
|
<DisplayString>{*($T1*)mpNode}</DisplayString>
|
|
<Expand>
|
|
<ExpandedItem>*($T1*)mpNode</ExpandedItem>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::set<*>">
|
|
<AlternativeType Name="eastl::multiset<*>" />
|
|
<DisplayString Condition="mnSize == 0">
|
|
[0] {{}}
|
|
</DisplayString>
|
|
<DisplayString Condition="mnSize == 1">
|
|
[1]
|
|
{{
|
|
{((eastl::rbtree_node<$T1>*)mAnchor.mpNodeLeft)->mValue}
|
|
}}
|
|
</DisplayString>
|
|
<DisplayString Condition="mnSize > 1">
|
|
[{mnSize}]
|
|
{{
|
|
{((eastl::rbtree_node<$T1>*)mAnchor.mpNodeLeft)->mValue},
|
|
...
|
|
}}
|
|
</DisplayString>
|
|
<Expand>
|
|
<Item Name="[size]">mnSize</Item>
|
|
<TreeItems>
|
|
<Size>mnSize</Size>
|
|
<HeadPointer>mAnchor.mpNodeParent</HeadPointer>
|
|
<LeftPointer>mpNodeLeft</LeftPointer>
|
|
<RightPointer>mpNodeRight</RightPointer>
|
|
<ValueNode>((eastl::rbtree_node<$T1>*)this)->mValue</ValueNode>
|
|
</TreeItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::rbtree<*,*>">
|
|
<DisplayString Condition="mnSize == 0">
|
|
[0] {{}}
|
|
</DisplayString>
|
|
<DisplayString Condition="mnSize == 1">
|
|
[1]
|
|
{{
|
|
{((eastl::rbtree_node<$T2>*)mAnchor.mpNodeLeft)->mValue}
|
|
}}
|
|
</DisplayString>
|
|
<DisplayString Condition="mnSize > 1">
|
|
[{mnSize}]
|
|
{{
|
|
{((eastl::rbtree_node<$T2>*)mAnchor.mpNodeLeft)->mValue},
|
|
...
|
|
}}
|
|
</DisplayString>
|
|
<Expand>
|
|
<Item Name="[size]">mnSize</Item>
|
|
<TreeItems>
|
|
<Size>mnSize</Size>
|
|
<HeadPointer>mAnchor.mpNodeParent</HeadPointer>
|
|
<LeftPointer>mpNodeLeft</LeftPointer>
|
|
<RightPointer>mpNodeRight</RightPointer>
|
|
<ValueNode>((eastl::rbtree_node<$T2>*)this)->mValue</ValueNode>
|
|
</TreeItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::rbtree_node<*>">
|
|
<DisplayString>{mValue}</DisplayString>
|
|
<Expand>
|
|
<Item Name="Value">mValue</Item>
|
|
<Synthetic Name="NOTE!">
|
|
<DisplayString>It is possible to expand parents that do not exist.</DisplayString>
|
|
</Synthetic>
|
|
<Item Name="Parent">*(eastl::rbtree_node<$T1>*)mpNodeParent</Item>
|
|
<Item Name="Left">*(eastl::rbtree_node<$T1>*)mpNodeLeft</Item>
|
|
<Item Name="Right">*(eastl::rbtree_node<$T1>*)mpNodeRight</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::rbtree_iterator<*>">
|
|
<DisplayString>{*(eastl::rbtree_node<$T1>*)mpNode}</DisplayString>
|
|
<Expand>
|
|
<Item Name="Node">*(eastl::rbtree_node<$T1>*)mpNode</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
|
|
<Type Name="eastl::hashtable<*>">
|
|
<DisplayString Condition="mnElementCount == 0">[{mnElementCount}] {{}}</DisplayString>
|
|
<DisplayString Condition="mnElementCount != 0">[{mnElementCount}] {{ ... }}</DisplayString>
|
|
<Expand>
|
|
<ArrayItems IncludeView="detailed">
|
|
<Size>mnBucketCount</Size>
|
|
<ValuePointer>mpBucketArray</ValuePointer>
|
|
</ArrayItems>
|
|
<CustomListItems ExcludeView="detailed">
|
|
<Variable Name="bucketIndex" InitialValue="0"/>
|
|
<Variable Name="entry" InitialValue ="mpBucketArray[bucketIndex]"/>
|
|
<Loop>
|
|
<Item Condition="entry != nullptr">entry->mValue</Item>
|
|
<If Condition="entry != nullptr">
|
|
<Exec>entry = entry->mpNext</Exec>
|
|
</If>
|
|
<If Condition="entry == nullptr">
|
|
<Exec>bucketIndex++</Exec>
|
|
<Break Condition="bucketIndex == mnBucketCount"/>
|
|
<Exec>entry = mpBucketArray[bucketIndex]</Exec>
|
|
</If>
|
|
</Loop>
|
|
</CustomListItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<!-- specifically for hash_map (instead of base implementation hashtable),
|
|
show the key as name, and value as value, instead of index -> pair<key, value> -->
|
|
<Type Name="eastl::hash_map<*>">
|
|
<DisplayString Condition="mnElementCount == 0">[{mnElementCount}] {{}}</DisplayString>
|
|
<DisplayString Condition="mnElementCount != 0">[{mnElementCount}] {{ ... }}</DisplayString>
|
|
<Expand>
|
|
<CustomListItems ExcludeView="detailed">
|
|
<Variable Name="bucketIndex" InitialValue="0"/>
|
|
<Variable Name="entry" InitialValue ="mpBucketArray[bucketIndex]"/>
|
|
<Loop>
|
|
<Item Name="[{entry->mValue.first}]" Condition="entry != nullptr">entry->mValue.second</Item>
|
|
<If Condition="entry != nullptr">
|
|
<Exec>entry = entry->mpNext</Exec>
|
|
</If>
|
|
<If Condition="entry == nullptr">
|
|
<Exec>bucketIndex++</Exec>
|
|
<Break Condition="bucketIndex == mnBucketCount"/>
|
|
<Exec>entry = mpBucketArray[bucketIndex]</Exec>
|
|
</If>
|
|
</Loop>
|
|
</CustomListItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::hash_node<*>">
|
|
<DisplayString Condition="this != 0 && mpNext != 0"> {mValue}, {*mpNext}</DisplayString>
|
|
<DisplayString Condition="this != 0 && mpNext == 0"> {mValue}</DisplayString>
|
|
<DisplayString Condition="this == 0"></DisplayString>
|
|
<Expand>
|
|
<LinkedListItems>
|
|
<HeadPointer>this</HeadPointer>
|
|
<NextPointer>mpNext</NextPointer>
|
|
<ValueNode>mValue</ValueNode>
|
|
</LinkedListItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::hashtable_iterator_base<*>">
|
|
<DisplayString>{mpNode->mValue}</DisplayString>
|
|
<Expand>
|
|
<ExpandedItem>mpNode->mValue</ExpandedItem>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::reverse_iterator<*>">
|
|
<DisplayString>{*(mIterator-1)}</DisplayString>
|
|
<Expand>
|
|
<ExpandedItem>mIterator-1</ExpandedItem>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::bitset<*>">
|
|
<DisplayString>{{count = {kSize}}}</DisplayString>
|
|
<Expand>
|
|
<Item Name="[count]">kSize</Item>
|
|
<CustomListItems>
|
|
<Variable Name="iWord" InitialValue="0" />
|
|
<Variable Name="iBitInWord" InitialValue="0" />
|
|
<Variable Name="bBitValue" InitialValue="false" />
|
|
|
|
<Size>kSize</Size>
|
|
|
|
<Loop>
|
|
<Exec>bBitValue = ((mWord[iWord] >> iBitInWord) % 2) != 0 ? true : false</Exec>
|
|
<Item>bBitValue</Item>
|
|
<Exec>iBitInWord++</Exec>
|
|
<If Condition="iBitInWord == kBitsPerWord">
|
|
<Exec>iWord++</Exec>
|
|
<Exec>iBitInWord = 0</Exec>
|
|
</If>
|
|
</Loop>
|
|
</CustomListItems>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::ring_buffer<*,*,*>">
|
|
<DisplayString>{c}</DisplayString>
|
|
<Expand>
|
|
<ExpandedItem>c</ExpandedItem>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::basic_string_view<*>">
|
|
<DisplayString>{mpBegin,[mnCount]}</DisplayString>
|
|
<StringView>mpBegin,[mnCount]</StringView>
|
|
</Type>
|
|
|
|
<Type Name="eastl::compressed_pair_imp<*>">
|
|
<DisplayString Condition="($T3) == 0" Optional="true">({mFirst}, {mSecond})</DisplayString>
|
|
<DisplayString Condition="($T3) == 1" Optional="true">({mSecond})</DisplayString>
|
|
<DisplayString Condition="($T3) == 2" Optional="true">({mFirst})</DisplayString>
|
|
<DisplayString Condition="($T3) == 3" Optional="true">(empty)</DisplayString>
|
|
<DisplayString Condition="($T3) == 4" Optional="true">(empty)</DisplayString>
|
|
<DisplayString Condition="($T3) == 5" Optional="true">({mFirst}, {mSecond})</DisplayString>
|
|
</Type>
|
|
|
|
<Type Name="eastl::optional<*>">
|
|
<Intrinsic Name="value" Expression="*($T1*)&val"/>
|
|
<DisplayString Condition="!engaged">nullopt</DisplayString>
|
|
<DisplayString Condition="engaged">{value()}</DisplayString>
|
|
<Expand>
|
|
<Item Condition="engaged" Name="value">value()</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::expected<*>">
|
|
<DisplayString Condition="!mHasValue">{mError} (Error)</DisplayString>
|
|
<DisplayString Condition="mHasValue">{mValue}</DisplayString>
|
|
<Expand>
|
|
<Item Condition="!mHasValue" Name="mError">mError</Item>
|
|
<Item Condition="mHasValue" Name="mValue">mValue</Item>
|
|
<Item Name="mHasValue">mHasValue</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::expected<void,*>">
|
|
<DisplayString Condition="mHasValue">void</DisplayString>
|
|
<DisplayString Condition="!mHasValue">{mError} (Error)</DisplayString>
|
|
<Expand>
|
|
<Item Condition="!mHasValue" Name="mError">mError</Item>
|
|
<Item Name="mHasValue">mHasValue</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::ratio<*>">
|
|
<DisplayString>{$T1} to {$T2}}</DisplayString>
|
|
</Type>
|
|
|
|
|
|
<Type Name="eastl::chrono::duration<*,eastl::ratio<1,1000000000> >">
|
|
<DisplayString>{mRep} nanoseconds</DisplayString>
|
|
</Type>
|
|
|
|
<Type Name="eastl::chrono::duration<*,eastl::ratio<1,1000000> >">
|
|
<DisplayString>{mRep} microseconds</DisplayString>
|
|
</Type>
|
|
|
|
<Type Name="eastl::chrono::duration<*,eastl::ratio<1,1000> >">
|
|
<DisplayString>{mRep} milliseconds</DisplayString>
|
|
</Type>
|
|
|
|
<Type Name="eastl::chrono::duration<*,eastl::ratio<1,1> >">
|
|
<DisplayString>{mRep} seconds</DisplayString>
|
|
</Type>
|
|
|
|
<Type Name="eastl::chrono::duration<*,eastl::ratio<60,1> >">
|
|
<DisplayString>{mRep} minutes</DisplayString>
|
|
</Type>
|
|
|
|
<Type Name="eastl::chrono::duration<*,eastl::ratio<3600,1> >">
|
|
<DisplayString>{mRep} hours</DisplayString>
|
|
</Type>
|
|
|
|
<Type Name="eastl::chrono::duration<*,eastl::ratio<*,*> >">
|
|
<DisplayString>{mRep} duration with ratio = [{$T2} : {$T3}] </DisplayString>
|
|
</Type>
|
|
|
|
|
|
|
|
<Type Name="eastl::function<*>">
|
|
<DisplayString Condition="mInvokeFuncPtr == nullptr">empty</DisplayString>
|
|
<DisplayString>{mInvokeFuncPtr}</DisplayString>
|
|
</Type>
|
|
|
|
|
|
<Type Name="eastl::reference_wrapper<*>">
|
|
<DisplayString>{*val}</DisplayString>
|
|
</Type>
|
|
|
|
<!--
|
|
This implementation isn't ideal because it can't switch between showing inline value vs values stored in a heap allocation.
|
|
We are hitting the limit of natvis scripting that we can't workaround unless we change the implementation of eastl::any.
|
|
-->
|
|
<Type Name="eastl::any">
|
|
<DisplayString Condition="m_handler == nullptr">empty</DisplayString>
|
|
<DisplayString Condition="m_handler != nullptr">{m_storage.external_storage}</DisplayString>
|
|
</Type>
|
|
|
|
|
|
<Type Name="eastl::atomic<*>">
|
|
<DisplayString>{mAtomic}</DisplayString>
|
|
<Expand>
|
|
<ExpandedItem>mAtomic</ExpandedItem>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::atomic_flag">
|
|
<DisplayString>{mFlag.mAtomic}</DisplayString>
|
|
</Type>
|
|
|
|
<Type Name="eastl::variant<*>">
|
|
<Intrinsic Name="index" Expression="(int)mIndex"/>
|
|
<DisplayString Condition="index() == size_t(-1)">[valueless_by_exception]</DisplayString>
|
|
<DisplayString Condition="index() == 0" Optional="true">{{ index=0, value={($T1*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 1" Optional="true">{{ index=1, value={($T2*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 2" Optional="true">{{ index=2, value={($T3*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 3" Optional="true">{{ index=3, value={($T4*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 4" Optional="true">{{ index=4, value={($T5*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 5" Optional="true">{{ index=5, value={($T6*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 6" Optional="true">{{ index=6, value={($T7*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 7" Optional="true">{{ index=7, value={($T8*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 8" Optional="true">{{ index=8, value={($T9*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 9" Optional="true">{{ index=9, value={($T10*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 10" Optional="true">{{ index=10, value={($T11*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 11" Optional="true">{{ index=11, value={($T12*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 12" Optional="true">{{ index=12, value={($T13*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 13" Optional="true">{{ index=13, value={($T14*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 14" Optional="true">{{ index=14, value={($T15*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 15" Optional="true">{{ index=15, value={($T16*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 16" Optional="true">{{ index=16, value={($T17*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 17" Optional="true">{{ index=17, value={($T18*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 18" Optional="true">{{ index=18, value={($T19*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 19" Optional="true">{{ index=19, value={($T20*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 20" Optional="true">{{ index=20, value={($T21*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 21" Optional="true">{{ index=21, value={($T22*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 22" Optional="true">{{ index=22, value={($T23*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 23" Optional="true">{{ index=23, value={($T24*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 24" Optional="true">{{ index=24, value={($T25*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 25" Optional="true">{{ index=25, value={($T26*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 26" Optional="true">{{ index=26, value={($T27*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 27" Optional="true">{{ index=27, value={($T28*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 28" Optional="true">{{ index=28, value={($T29*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 29" Optional="true">{{ index=29, value={($T30*)mBuffer.mCharData}}</DisplayString>
|
|
<DisplayString Condition="index() == 30" Optional="true">{{ index=30, value={($T31*)mBuffer.mCharData}}</DisplayString>
|
|
<Expand>
|
|
<Item Name="index">index()</Item>
|
|
<Item Name="[value]" Condition="index() == 0" Optional="true">($T1*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 1" Optional="true">($T2*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 2" Optional="true">($T3*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 3" Optional="true">($T4*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 4" Optional="true">($T5*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 5" Optional="true">($T6*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 6" Optional="true">($T7*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 7" Optional="true">($T8*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 8" Optional="true">($T9*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 9" Optional="true">($T10*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 10" Optional="true">($T11*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 11" Optional="true">($T12*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 12" Optional="true">($T13*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 13" Optional="true">($T14*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 14" Optional="true">($T15*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 15" Optional="true">($T16*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 16" Optional="true">($T17*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 17" Optional="true">($T18*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 18" Optional="true">($T19*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 19" Optional="true">($T20*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 20" Optional="true">($T21*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 21" Optional="true">($T22*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 22" Optional="true">($T23*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 23" Optional="true">($T24*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 24" Optional="true">($T25*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 25" Optional="true">($T26*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 26" Optional="true">($T27*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 27" Optional="true">($T28*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 28" Optional="true">($T29*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 29" Optional="true">($T30*)mBuffer.mCharData</Item>
|
|
<Item Name="[value]" Condition="index() == 30" Optional="true">($T31*)mBuffer.mCharData</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
|
|
<Type Name="eastl::tuple<>">
|
|
<DisplayString IncludeView="noparens"></DisplayString>
|
|
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
|
|
<Expand/>
|
|
</Type>
|
|
|
|
<Type Name="eastl::tuple<*>">
|
|
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}</DisplayString>
|
|
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
|
|
<Expand>
|
|
<Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::tuple<*,*>">
|
|
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}</DisplayString>
|
|
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
|
|
<Expand>
|
|
<Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::tuple<*,*,*>">
|
|
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue}</DisplayString>
|
|
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
|
|
<Expand>
|
|
<Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[2]">(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::tuple<*,*,*,*>">
|
|
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue}</DisplayString>
|
|
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
|
|
<Expand>
|
|
<Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[2]">(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[3]">(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::tuple<*,*,*,*,*>">
|
|
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue}</DisplayString>
|
|
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
|
|
<Expand>
|
|
<Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[2]">(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[3]">(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[4]">(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::tuple<*,*,*,*,*,*>">
|
|
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<5,$T6,0>*)&mImpl)).mValue}</DisplayString>
|
|
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
|
|
<Expand>
|
|
<Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[2]">(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[3]">(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[4]">(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[5]">(*((eastl::Internal::TupleLeaf<5,$T6,0>*)&mImpl)).mValue</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::tuple<*,*,*,*,*,*,*>">
|
|
<DisplayString IncludeView="noparens">{(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<5,$T6,0>*)&mImpl)).mValue}, {(*((eastl::Internal::TupleLeaf<6,$T7,0>*)&mImpl)).mValue}</DisplayString>
|
|
<DisplayString ExcludeView="noparens">({*this,view(noparens)})</DisplayString>
|
|
<Expand>
|
|
<Item Name="[0]">(*((eastl::Internal::TupleLeaf<0,$T1,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[1]">(*((eastl::Internal::TupleLeaf<1,$T2,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[2]">(*((eastl::Internal::TupleLeaf<2,$T3,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[3]">(*((eastl::Internal::TupleLeaf<3,$T4,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[4]">(*((eastl::Internal::TupleLeaf<4,$T5,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[5]">(*((eastl::Internal::TupleLeaf<5,$T6,0>*)&mImpl)).mValue</Item>
|
|
<Item Name="[6]">(*((eastl::Internal::TupleLeaf<6,$T7,0>*)&mImpl)).mValue</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::basic_flags<*,eastl::flag_marshaller<eastl::maskflag_tag,*>>">
|
|
<DisplayString Condition="m_mask == 0">(nothing)</DisplayString>
|
|
<DisplayString>{static_cast<flag_type>(m_mask),en}</DisplayString>
|
|
<Expand>
|
|
<Item Name="m_mask">m_mask,bb</Item>
|
|
<Item Name="bit 0" Condition="m_mask & (1 << 0)">(flag_type)(1 << 0),en</Item>
|
|
<Item Name="bit 1" Condition="m_mask & (1 << 1)">(flag_type)(1 << 1),en</Item>
|
|
<Item Name="bit 2" Condition="m_mask & (1 << 2)">(flag_type)(1 << 2),en</Item>
|
|
<Item Name="bit 3" Condition="m_mask & (1 << 3)">(flag_type)(1 << 3),en</Item>
|
|
<Item Name="bit 4" Condition="m_mask & (1 << 4)">(flag_type)(1 << 4),en</Item>
|
|
<Item Name="bit 5" Condition="m_mask & (1 << 5)">(flag_type)(1 << 5),en</Item>
|
|
<Item Name="bit 6" Condition="m_mask & (1 << 6)">(flag_type)(1 << 6),en</Item>
|
|
<Item Name="bit 7" Condition="m_mask & (1 << 7)">(flag_type)(1 << 7),en</Item>
|
|
|
|
<Item Name="bit 8" Condition="m_mask & (1 << 8)">(flag_type)(1 << 8),en</Item>
|
|
<Item Name="bit 9" Condition="m_mask & (1 << 9)">(flag_type)(1 << 9),en</Item>
|
|
<Item Name="bit 10" Condition="m_mask & (1 << 10)">(flag_type)(1 << 10),en</Item>
|
|
<Item Name="bit 11" Condition="m_mask & (1 << 11)">(flag_type)(1 << 11),en</Item>
|
|
<Item Name="bit 12" Condition="m_mask & (1 << 12)">(flag_type)(1 << 12),en</Item>
|
|
<Item Name="bit 13" Condition="m_mask & (1 << 13)">(flag_type)(1 << 13),en</Item>
|
|
<Item Name="bit 14" Condition="m_mask & (1 << 14)">(flag_type)(1 << 14),en</Item>
|
|
<Item Name="bit 15" Condition="m_mask & (1 << 15)">(flag_type)(1 << 15),en</Item>
|
|
|
|
<Item Name="bit 16" Condition="m_mask & (1 << 16)">(flag_type)(1 << 16),en</Item>
|
|
<Item Name="bit 17" Condition="m_mask & (1 << 17)">(flag_type)(1 << 17),en</Item>
|
|
<Item Name="bit 18" Condition="m_mask & (1 << 18)">(flag_type)(1 << 18),en</Item>
|
|
<Item Name="bit 19" Condition="m_mask & (1 << 19)">(flag_type)(1 << 19),en</Item>
|
|
<Item Name="bit 20" Condition="m_mask & (1 << 20)">(flag_type)(1 << 20),en</Item>
|
|
<Item Name="bit 21" Condition="m_mask & (1 << 21)">(flag_type)(1 << 21),en</Item>
|
|
<Item Name="bit 22" Condition="m_mask & (1 << 22)">(flag_type)(1 << 22),en</Item>
|
|
<Item Name="bit 23" Condition="m_mask & (1 << 23)">(flag_type)(1 << 23),en</Item>
|
|
|
|
<Item Name="bit 24" Condition="m_mask & (1 << 24)">(flag_type)(1 << 24),en</Item>
|
|
<Item Name="bit 25" Condition="m_mask & (1 << 25)">(flag_type)(1 << 25),en</Item>
|
|
<Item Name="bit 26" Condition="m_mask & (1 << 26)">(flag_type)(1 << 26),en</Item>
|
|
<Item Name="bit 27" Condition="m_mask & (1 << 27)">(flag_type)(1 << 27),en</Item>
|
|
<Item Name="bit 28" Condition="m_mask & (1 << 28)">(flag_type)(1 << 28),en</Item>
|
|
<Item Name="bit 29" Condition="m_mask & (1 << 29)">(flag_type)(1 << 29),en</Item>
|
|
<Item Name="bit 30" Condition="m_mask & (1 << 30)">(flag_type)(1 << 30),en</Item>
|
|
<Item Name="bit 31" Condition="m_mask & (1 << 31)">(flag_type)(1 << 31),en</Item>
|
|
</Expand>
|
|
</Type>
|
|
|
|
<Type Name="eastl::basic_flags<*,eastl::flag_marshaller<eastl::bitflag_tag,*>>">
|
|
<!-- when we have a single flag, display that -->
|
|
<DisplayString Condition="(1 << __log2(m_mask)) == m_mask">{static_cast<flag_type>(__log2(m_mask)),en}</DisplayString>
|
|
<!-- we lack the technology to show every flag, so just say there is multiple -->
|
|
<DisplayString Condition="m_mask != 0">(multiple values)</DisplayString>
|
|
<!-- empty -->
|
|
<DisplayString>(nothing)</DisplayString>
|
|
|
|
<Expand>
|
|
<Item Name="m_mask">m_mask,bb</Item>
|
|
<Item Name="bit 0" Condition="m_mask & (1 << 0)">(flag_type)(0),en</Item>
|
|
<Item Name="bit 1" Condition="m_mask & (1 << 1)">(flag_type)(1),en</Item>
|
|
<Item Name="bit 2" Condition="m_mask & (1 << 2)">(flag_type)(2),en</Item>
|
|
<Item Name="bit 3" Condition="m_mask & (1 << 3)">(flag_type)(3),en</Item>
|
|
<Item Name="bit 4" Condition="m_mask & (1 << 4)">(flag_type)(4),en</Item>
|
|
<Item Name="bit 5" Condition="m_mask & (1 << 5)">(flag_type)(5),en</Item>
|
|
<Item Name="bit 6" Condition="m_mask & (1 << 6)">(flag_type)(6),en</Item>
|
|
<Item Name="bit 7" Condition="m_mask & (1 << 7)">(flag_type)(7),en</Item>
|
|
|
|
<Item Name="bit 8" Condition="m_mask & (1 << 8)">(flag_type)(8),en</Item>
|
|
<Item Name="bit 9" Condition="m_mask & (1 << 9)">(flag_type)(9),en</Item>
|
|
<Item Name="bit 10" Condition="m_mask & (1 << 10)">(flag_type)(10),en</Item>
|
|
<Item Name="bit 11" Condition="m_mask & (1 << 11)">(flag_type)(11),en</Item>
|
|
<Item Name="bit 12" Condition="m_mask & (1 << 12)">(flag_type)(12),en</Item>
|
|
<Item Name="bit 13" Condition="m_mask & (1 << 13)">(flag_type)(13),en</Item>
|
|
<Item Name="bit 14" Condition="m_mask & (1 << 14)">(flag_type)(14),en</Item>
|
|
<Item Name="bit 15" Condition="m_mask & (1 << 15)">(flag_type)(15),en</Item>
|
|
|
|
<Item Name="bit 16" Condition="m_mask & (1 << 16)">(flag_type)(16),en</Item>
|
|
<Item Name="bit 17" Condition="m_mask & (1 << 17)">(flag_type)(17),en</Item>
|
|
<Item Name="bit 18" Condition="m_mask & (1 << 18)">(flag_type)(18),en</Item>
|
|
<Item Name="bit 19" Condition="m_mask & (1 << 19)">(flag_type)(19),en</Item>
|
|
<Item Name="bit 20" Condition="m_mask & (1 << 20)">(flag_type)(20),en</Item>
|
|
<Item Name="bit 21" Condition="m_mask & (1 << 21)">(flag_type)(21),en</Item>
|
|
<Item Name="bit 22" Condition="m_mask & (1 << 22)">(flag_type)(22),en</Item>
|
|
<Item Name="bit 23" Condition="m_mask & (1 << 23)">(flag_type)(23),en</Item>
|
|
|
|
<Item Name="bit 24" Condition="m_mask & (1 << 24)">(flag_type)(24),en</Item>
|
|
<Item Name="bit 25" Condition="m_mask & (1 << 25)">(flag_type)(25),en</Item>
|
|
<Item Name="bit 26" Condition="m_mask & (1 << 26)">(flag_type)(26),en</Item>
|
|
<Item Name="bit 27" Condition="m_mask & (1 << 27)">(flag_type)(27),en</Item>
|
|
<Item Name="bit 28" Condition="m_mask & (1 << 28)">(flag_type)(28),en</Item>
|
|
<Item Name="bit 29" Condition="m_mask & (1 << 29)">(flag_type)(29),en</Item>
|
|
<Item Name="bit 30" Condition="m_mask & (1 << 30)">(flag_type)(30),en</Item>
|
|
<Item Name="bit 31" Condition="m_mask & (1 << 31)">(flag_type)(31),en</Item>
|
|
</Expand>
|
|
</Type>
|
|
</AutoVisualizer> |