duckstation

duckstation, but archived from the revision just before upstream changed it to a proprietary software project, this version is the libre one
git clone https://git.neptards.moe/u3shit/duckstation.git
Log | Files | Refs | README | LICENSE

c4core.natvis (5775B)


      1 <?xml version="1.0" encoding="utf-8"?> 
      2 
      3 <!--
      4 Very good intro:
      5 @see https://code.msdn.microsoft.com/windowsdesktop/Writing-type-visualizers-2eae77a2
      6 See also:
      7 @see http://blogs.msdn.com/b/vcblog/archive/2013/06/28/using-visual-studio-2013-to-write-maintainable-native-visualizations-natvis.aspx?PageIndex=2
      8 @see http://blogs.msdn.com/b/vcblog/archive/2015/09/28/debug-visualizers-in-visual-c-2015.aspx
      9 @see http://stackoverflow.com/questions/36883414/limit-display-of-char-in-natvis-file-to-specific-length
     10 -->
     11 
     12 <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
     13 
     14   <Type Name="c4::basic_substring&lt;*&gt;">
     15     <DisplayString>{str,[len]} (sz={len})</DisplayString>
     16     <StringView>str,[len]</StringView>
     17     <Expand>
     18       <Item Name="[size]">len</Item>
     19       <ArrayItems>
     20         <Size>len</Size>
     21         <ValuePointer>str</ValuePointer>
     22       </ArrayItems>
     23     </Expand>
     24   </Type>
     25 
     26   <Type Name="c4::span&lt;*&gt;">
     27     <DisplayString>{m_ptr,[m_size]} (sz={m_size})</DisplayString>
     28     <Expand>
     29       <Item Name="[size]">m_size</Item>
     30       <ArrayItems>
     31         <Size>m_size</Size>
     32         <ValuePointer>m_ptr</ValuePointer>
     33       </ArrayItems>
     34     </Expand>
     35   </Type>
     36   <Type Name="c4::spanrs&lt;*&gt;">
     37     <DisplayString>{m_ptr,[m_size]} (sz={m_size}, cap={m_capacity})</DisplayString>
     38     <Expand>
     39       <Item Name="[size]">m_size</Item>
     40       <Item Name="[capacity]">m_capacity</Item>
     41       <ArrayItems>
     42         <Size>m_size</Size>
     43         <ValuePointer>m_ptr</ValuePointer>
     44       </ArrayItems>
     45     </Expand>
     46   </Type>
     47   <!-- display span<char>/span<const char> as a string too -->
     48   <Type Name="c4::span&lt;char,*&gt;">
     49     <DisplayString>{m_ptr,[m_size]} (sz={m_size})</DisplayString>
     50     <StringView>m_ptr,[m_size]</StringView>
     51     <Expand>
     52       <Item Name="[size]">m_size</Item>
     53       <ArrayItems>
     54         <Size>m_size</Size>
     55         <ValuePointer>m_ptr</ValuePointer>
     56       </ArrayItems>
     57     </Expand>
     58   </Type>
     59   <Type Name="c4::span&lt;const char,*&gt;">
     60     <DisplayString>{m_ptr,[m_size]} (sz={m_size})</DisplayString>
     61     <StringView>m_ptr,[m_size]</StringView>
     62     <Expand>
     63       <Item Name="[size]">m_size</Item>
     64       <ArrayItems>
     65         <Size>m_size</Size>
     66         <ValuePointer>m_ptr</ValuePointer>
     67       </ArrayItems>
     68     </Expand>
     69   </Type>
     70   <!-- display spanrs<char>/spanrs<const char> as a string too -->
     71   <Type Name="c4::spanrs&lt;char,*&gt;">
     72     <DisplayString>{m_ptr,[m_size]} (sz={m_size}, cap={m_capacity})</DisplayString>
     73     <StringView>m_ptr,[m_size]</StringView>
     74     <Expand>
     75       <Item Name="[size]">m_size</Item>
     76       <Item Name="[capacity]">m_capacity</Item>
     77       <ArrayItems>
     78         <Size>m_size</Size>
     79         <ValuePointer>m_ptr</ValuePointer>
     80       </ArrayItems>
     81     </Expand>
     82   </Type>
     83   <Type Name="c4::spanrs&lt;const char,*&gt;">
     84     <DisplayString>{m_ptr,[m_size]} (sz={m_size}, cap={m_capacity})</DisplayString>
     85     <StringView>m_ptr,[m_size]</StringView>
     86     <Expand>
     87       <Item Name="[size]">m_size</Item>
     88       <Item Name="[capacity]">m_capacity</Item>
     89       <ArrayItems>
     90         <Size>m_size</Size>
     91         <ValuePointer>m_ptr</ValuePointer>
     92       </ArrayItems>
     93     </Expand>
     94   </Type>
     95 
     96   <!-- =========================================================================================== -->
     97   <Type Name="c4::string_impl&lt;*,*,*,*&gt;">
     98     <DisplayString>{(($T3*)this)->m_str,[(($T3*)this)->m_size]} (sz={(($T3*)this)->m_size})</DisplayString>
     99     <StringView>(($T3*)this)->m_str,[(($T3*)this)->m_size]</StringView>
    100     <Expand>
    101       <Synthetic Name="m_str">
    102         <DisplayString>{(($T3*)this)->m_str,[(($T3*)this)->m_size]}</DisplayString>
    103         <StringView>(($T3*)this)->m_str,[(($T3*)this)->m_size]</StringView>
    104       </Synthetic>
    105       <Synthetic Name="m_size">
    106         <DisplayString>{(($T3*)this)->m_size}</DisplayString>
    107       </Synthetic>
    108     </Expand>
    109   </Type>
    110   <Type Name="c4::basic_substring&lt;*,*&gt;">
    111     <DisplayString>{m_str,[m_size]} (sz={m_size})</DisplayString>
    112     <StringView>m_str,[m_size]</StringView>
    113     <Expand>
    114       <Synthetic Name="[size]">
    115         <DisplayString>{m_size}</DisplayString>
    116       </Synthetic>
    117     </Expand>
    118   </Type>
    119   <Type Name="c4::basic_substringrs&lt;*,*&gt;">
    120     <DisplayString>{m_str,[m_size]} (sz={m_size},cap={m_capacity})</DisplayString>
    121     <StringView>m_str,[m_size]</StringView>
    122     <Expand>
    123       <Synthetic Name="[size]">
    124         <DisplayString>{m_size}</DisplayString>
    125       </Synthetic>
    126       <Synthetic Name="[capacity]">
    127         <DisplayString>{m_capacity}</DisplayString>
    128       </Synthetic>
    129       <Synthetic Name="[full]">
    130         <DisplayString>{m_str,[m_capacity]}</DisplayString>
    131         <StringView>m_str,[m_capacity]</StringView>
    132       </Synthetic>
    133     </Expand>
    134   </Type>
    135   <Type Name="c4::basic_string&lt;*,*,*&gt;">
    136     <DisplayString>{m_str,[m_size]} (sz={m_size},cap={m_capacity})</DisplayString>
    137     <StringView>m_str,[m_size]</StringView>
    138     <Expand>
    139       <Synthetic Name="[size]">
    140         <DisplayString>{m_size}</DisplayString>
    141       </Synthetic>
    142       <Synthetic Name="[full]">
    143         <DisplayString>{m_str,[m_capacity]}</DisplayString>
    144         <StringView>m_str,[m_capacity]</StringView>
    145       </Synthetic>
    146     </Expand>
    147   </Type>
    148 
    149   <!-- enum symbols -->
    150   <Type Name="c4::EnumSymbols&lt;*&gt;::Sym">
    151     <DisplayString>{value} - {name}</DisplayString>
    152     <Expand>
    153       <Item Name="[value]">value</Item>
    154       <Item Name="[name]">name</Item>
    155     </Expand>
    156   </Type>
    157   <Type Name="c4::EnumSymbols&lt;*&gt;">
    158     <DisplayString>{m_symbols,[m_num]} (sz={m_num})</DisplayString>
    159     <Expand>
    160       <Item Name="[size]">m_num</Item>
    161       <ArrayItems>
    162         <Size>m_num</Size>
    163         <ValuePointer>m_symbols</ValuePointer>
    164       </ArrayItems>
    165     </Expand>
    166   </Type>
    167 
    168 </AutoVisualizer>