Improved NATVIS file - added support for VmaIntrusiveLinkedList usage

This commit is contained in:
Adam Sawicki 2021-12-07 16:48:07 +01:00
parent 7df5ecf6e2
commit d3067c3620

View File

@ -1,40 +1,71 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="VmaRawList&lt;*&gt;"> <Type Name="VmaRawList&lt;*&gt;">
<DisplayString>{{ Count={m_Count} }}</DisplayString> <DisplayString>{{ Count={m_Count} }}</DisplayString>
<Expand> <Expand>
<Item Name="[Count]">m_Count</Item> <Item Name="[Count]">m_Count</Item>
<LinkedListItems> <LinkedListItems>
<Size>m_Count</Size> <Size>m_Count</Size>
<HeadPointer>m_pFront</HeadPointer> <HeadPointer>m_pFront</HeadPointer>
<NextPointer>pNext</NextPointer> <NextPointer>pNext</NextPointer>
<ValueNode>Value</ValueNode> <ValueNode>Value</ValueNode>
</LinkedListItems> </LinkedListItems>
</Expand> </Expand>
</Type> </Type>
<Type Name="VmaList&lt;*&gt;"> <Type Name="VmaList&lt;*&gt;">
<DisplayString>{{ Count={m_RawList.m_Count} }}</DisplayString> <DisplayString>{{ Count={m_RawList.m_Count} }}</DisplayString>
<Expand> <Expand>
<Item Name="[Count]">m_RawList.m_Count</Item> <Item Name="[Count]">m_RawList.m_Count</Item>
<LinkedListItems> <LinkedListItems>
<Size>m_RawList.m_Count</Size> <Size>m_RawList.m_Count</Size>
<HeadPointer>m_RawList.m_pFront</HeadPointer> <HeadPointer>m_RawList.m_pFront</HeadPointer>
<NextPointer>pNext</NextPointer> <NextPointer>pNext</NextPointer>
<ValueNode>Value</ValueNode> <ValueNode>Value</ValueNode>
</LinkedListItems> </LinkedListItems>
</Expand> </Expand>
</Type> </Type>
<Type Name="VmaVector&lt;*&gt;"> <Type Name="VmaVector&lt;*&gt;">
<DisplayString>{{ Count={m_Count} }}</DisplayString> <DisplayString>{{ Count={m_Count} }}</DisplayString>
<Expand> <Expand>
<Item Name="[Count]">m_Count</Item> <Item Name="[Count]">m_Count</Item>
<Item Name="[Capacity]">m_Capacity</Item> <Item Name="[Capacity]">m_Capacity</Item>
<ArrayItems> <ArrayItems>
<Size>m_Count</Size> <Size>m_Count</Size>
<ValuePointer>m_pArray</ValuePointer> <ValuePointer>m_pArray</ValuePointer>
</ArrayItems> </ArrayItems>
</Expand> </Expand>
</Type> </Type>
<!--
Due to custom way of accesing next items in
VmaIntrusiveLinkedList via methods in provided type traits,
every specialization must be manually added with
custom <NextPointer> field describing proper way of iterating the list.
-->
<Type Name="VmaIntrusiveLinkedList&lt;VmaDedicatedAllocationListItemTraits&gt;">
<DisplayString>{{ Count={m_Count} }}</DisplayString>
<Expand>
<Item Name="[Count]">m_Count</Item>
<LinkedListItems>
<Size>m_Count</Size>
<HeadPointer>m_Front</HeadPointer>
<NextPointer>m_DedicatedAllocation.m_Next</NextPointer>
<ValueNode>*this</ValueNode>
</LinkedListItems>
</Expand>
</Type>
<Type Name="VmaIntrusiveLinkedList&lt;VmaPoolListItemTraits&gt;">
<DisplayString>{{ Count={m_Count} }}</DisplayString>
<Expand>
<Item Name="[Count]">m_Count</Item>
<LinkedListItems>
<Size>m_Count</Size>
<HeadPointer>m_Front</HeadPointer>
<NextPointer>m_NextPool</NextPointer>
<ValueNode>*this</ValueNode>
</LinkedListItems>
</Expand>
</Type>
</AutoVisualizer> </AutoVisualizer>