<?xml version="1.0" encoding="utf-8"?> | |
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> | |
<!-- | |
Place this file to %USERPROFILE%\Documents\Visual Studio 2019\Visualizers | |
For more info: | |
https://docs.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects?view=vs-2019 | |
--> | |
<Type Name="WTF::RefPtr<*>"> | |
<DisplayString Condition="m_ptr == 0">empty</DisplayString> | |
<DisplayString>{*m_ptr}</DisplayString> | |
</Type> | |
<Type Name="WTF::UniqueRef<*>"> | |
<DisplayString>{m_ref}</DisplayString> | |
</Type> | |
<Type Name="WTF::StringImplShape"> | |
<!-- AtomString --> | |
<DisplayString Condition="(m_hashAndFlags & 0x10) && (m_hashAndFlags & 4)"> | |
Atom:{m_data8,[m_length]s} | |
</DisplayString> | |
<DisplayString Condition="(m_hashAndFlags & 0x10)"> | |
Atom:{m_data16,[m_length]su} | |
</DisplayString> | |
<!-- Symbol --> | |
<DisplayString Condition="(m_hashAndFlags & 0x20) && (m_hashAndFlags & 4)"> | |
<{m_data8,[m_length]s}> | |
</DisplayString> | |
<DisplayString Condition="(m_hashAndFlags & 0x20)"> | |
<{m_data16,[m_length]su}> | |
</DisplayString> | |
<DisplayString Condition="(m_hashAndFlags & 4)"> | |
{m_data8,[m_length]s} | |
</DisplayString> | |
<DisplayString Condition="!(m_hashAndFlags & 4)"> | |
{m_data16,[m_length]su} | |
</DisplayString> | |
<DisplayString>not supported ({m_hashAndFlags})</DisplayString> | |
</Type> | |
<Type Name="WTF::StringView"> | |
<DisplayString Condition="m_is8Bit"> | |
{m_characters,[m_length]s} | |
</DisplayString> | |
<DisplayString Condition="!m_is8Bit"> | |
{m_characters,[m_length]su} | |
</DisplayString> | |
</Type> | |
<Type Name="WTF::String"> | |
<DisplayString>{m_impl}</DisplayString> | |
</Type> | |
<Type Name="IPC::StringReference"> | |
<DisplayString Condition="!m_size">empty</DisplayString> | |
<DisplayString>{m_data,[m_size]s8}</DisplayString> | |
</Type> | |
<Type Name="IPC::Decoder"> | |
<DisplayString>{m_messageReceiverName}::{m_messageName}(ID={m_destination})</DisplayString> | |
</Type> | |
<Type Name="WTF::URL"> | |
<DisplayString>{m_string}</DisplayString> | |
</Type> | |
<Type Name="WTF::AtomString"> | |
<DisplayString>{m_string} (Atom)</DisplayString> | |
</Type> | |
<Type Name="WTF::NeverDestroyed<*,*>"> | |
<DisplayString>{*($T1 *)this}</DisplayString> | |
<Expand> | |
<ExpandedItem>*($T1 *)this</ExpandedItem> | |
</Expand> | |
</Type> | |
<Type Name="WTF::LazyNeverDestroyed<*,*>"> | |
<DisplayString>{*($T1 *)this}</DisplayString> | |
<Expand> | |
<ExpandedItem>*($T1 *)this</ExpandedItem> | |
</Expand> | |
</Type> | |
<Type Name="PAL::SessionID"> | |
<DisplayString>{m_identifier}</DisplayString> | |
</Type> | |
<Type Name="WTF::ObjectIdentifier<*>"> | |
<DisplayString>{m_identifier}</DisplayString> | |
</Type> | |
<Type Name="WTF::Optional<*>"> | |
<Intrinsic Name="has_value" Expression="init_"/> | |
<Intrinsic Name="value" Expression="storage_.value_"/> | |
<DisplayString Condition="!has_value()">nullopt</DisplayString> | |
<DisplayString Condition="has_value()">{value()}</DisplayString> | |
<Expand> | |
<Item Condition="has_value()" Name="value">value()</Item> | |
</Expand> | |
</Type> | |
<Type Name="WTF::OptionSet<*>"> | |
<DisplayString>{m_storage,x}</DisplayString> | |
</Type> | |
<Type Name="WTF::VectorBufferBase<*,*>"> | |
<DisplayString>{{ size={m_size} }}</DisplayString> | |
<Expand> | |
<Item Name="[capacity]" ExcludeView="simple">m_capacity</Item> | |
<ArrayItems> | |
<Size>m_size</Size> | |
<ValuePointer>m_buffer</ValuePointer> | |
</ArrayItems> | |
</Expand> | |
</Type> | |
<Type Name="WebCore::IntSize"> | |
<DisplayString>({m_width} x {m_height})</DisplayString> | |
</Type> | |
<!-- Networking --> | |
<Type Name="WebCore::ResourceRequest"> | |
<DisplayString>{m_httpMethod} {m_url} {m_httpBody}</DisplayString> | |
</Type> | |
</AutoVisualizer> |