natvis support in build system + some natvis

This commit is contained in:
Patedam committed 2026-09-18 18:23:49 -04:00
1 parent 2fd675cf11
commit 1367146503
5 files changed
+137 -6

No files matched your search

+43
View File
@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="NonNullPtr&lt;void&gt;">
<DisplayString>{(void*)InternalPtr}</DisplayString>
<Expand>
<Item Name="[ptr]">InternalPtr</Item>
</Expand>
</Type>
<Type Name="NonNullPtr&lt;*&gt;">
<DisplayString Condition="InternalPtr == 0">&lt;null&gt;</DisplayString>
<DisplayString>{InternalPtr}</DisplayString>
<Expand>
<ExpandedItem>InternalPtr</ExpandedItem>
</Expand>
</Type>
<Type Name="VectorArena&lt;*,*&gt;">
<DisplayString>{{ size={Count} capacity={Capacity} }}</DisplayString>
<Expand>
<Item Name="[size]">Count</Item>
<Item Name="[capacity]">Capacity</Item>
<ArrayItems>
<Size>Count</Size>
<ValuePointer>Data</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="Arena">
<DisplayString Condition="Name != 0">{Name,s} (used={Position} / reserved={ReserveSize})</DisplayString>
<DisplayString Condition="Name == 0">Arena (used={Position} / reserved={ReserveSize})</DisplayString>
<Expand>
<Item Name="[name]" Condition="Name != 0">Name,s</Item>
<Item Name="[used]">Position</Item>
<Item Name="[committed]">Committed</Item>
<Item Name="[reserved]">ReserveSize</Item>
<Item Name="[alignment]">Alignment</Item>
<Item Name="Current">Current</Item>
<Item Name="Previous">Previous</Item>
</Expand>
</Type>
</AutoVisualizer>
+42
View File
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="String8">
<DisplayString Condition="Str == 0 || Size == 0">&lt;empty&gt;</DisplayString>
<DisplayString>{Str,[Size]s8}</DisplayString>
<StringView>Str,[Size]s8</StringView>
<Expand>
<Item Name="[size]">Size</Item>
<ArrayItems>
<Size>Size</Size>
<ValuePointer>Str</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="String16">
<DisplayString Condition="Str == 0 || Size == 0">&lt;empty&gt;</DisplayString>
<DisplayString>{Str,[Size]su}</DisplayString>
<StringView>Str,[Size]su</StringView>
<Expand>
<Item Name="[size]">Size</Item>
<ArrayItems>
<Size>Size</Size>
<ValuePointer>Str</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name="StringBuffer">
<DisplayString Condition="Str == 0 || Size == 0">&lt;empty&gt; (capacity={Capacity})</DisplayString>
<DisplayString>{Str,[Size]s8} (capacity={Capacity})</DisplayString>
<StringView>Str,[Size]s8</StringView>
<Expand>
<Item Name="[size]">Size</Item>
<Item Name="[capacity]">Capacity</Item>
<ArrayItems>
<Size>Size</Size>
<ValuePointer>Str</ValuePointer>
</ArrayItems>
</Expand>
</Type>
</AutoVisualizer>