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<*>"> 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<*>"> 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<*>"> 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<char,*>"> 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<const char,*>"> 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<char,*>"> 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<const char,*>"> 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<*,*,*,*>"> 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<*,*>"> 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<*,*>"> 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<*,*,*>"> 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<*>::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<*>"> 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>