Commit 9a738068 authored by Felix Andrew's avatar Felix Andrew Committed by Commit Bot

base::Value visualizer

Bug: 1132914

Changes to base::Value to use absl::variant made it necessary to change the .natvis to aid in debugging.

Change-Id: I1f3d99afeb28bdb5a9d132d3bb578103befc6525
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2436320Reviewed-by: default avatarBruce Dawson <brucedawson@chromium.org>
Reviewed-by: default avatarJan Wilken Dörrie <jdoerrie@chromium.org>
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#813008}
parent f6f7990d
...@@ -418,10 +418,10 @@ TEST(ValuesTest, TakeList) { ...@@ -418,10 +418,10 @@ TEST(ValuesTest, TakeList) {
// Prepare a list with a value of each type. // Prepare a list with a value of each type.
ListValue value; ListValue value;
value.Append(Value(Value::Type::NONE)); value.Append(Value(Value::Type::NONE));
value.Append(Value(Value::Type::BOOLEAN)); value.Append(Value(true));
value.Append(Value(Value::Type::INTEGER)); value.Append(Value(123));
value.Append(Value(Value::Type::DOUBLE)); value.Append(Value(123.456));
value.Append(Value(Value::Type::STRING)); value.Append(Value("string"));
value.Append(Value(Value::Type::BINARY)); value.Append(Value(Value::Type::BINARY));
value.Append(Value(Value::Type::LIST)); value.Append(Value(Value::Type::LIST));
value.Append(Value(Value::Type::DICTIONARY)); value.Append(Value(Value::Type::DICTIONARY));
......
...@@ -156,26 +156,44 @@ ...@@ -156,26 +156,44 @@
<ExpandedItem>impl_.body_</ExpandedItem> <ExpandedItem>impl_.body_</ExpandedItem>
</Expand> </Expand>
</Type> </Type>
<Type Name="base::Value"> <Type Name="base::Value" >
<DisplayString Condition="type_ == NONE">NONE</DisplayString> <DisplayString Condition="data_.index_==base::Value::NONE">None</DisplayString>
<DisplayString Condition="type_ == BOOLEAN">BOOLEAN {bool_value_}</DisplayString> <DisplayString Condition="data_.index_==base::Value::BOOLEAN">Boolean {data_.state_.tail.head}</DisplayString>
<DisplayString Condition="type_ == INTEGER">INTEGER {int_value_}</DisplayString> <DisplayString Condition="data_.index_==base::Value::INTEGER">Integer {data_.state_.tail.tail.head}</DisplayString>
<DisplayString Condition="type_ == DOUBLE">DOUBLE {double_value_}</DisplayString> <DisplayString Condition="data_.index_==base::Value::DOUBLE">Double {*(double*)data_.state_.tail.tail.tail.head.v}</DisplayString>
<DisplayString Condition="type_ == STRING">STRING {string_value_}</DisplayString> <DisplayString Condition="data_.index_==base::Value::STRING">String {data_.state_.tail.tail.tail.tail.head,na}</DisplayString>
<DisplayString Condition="type_ == BINARY">BINARY {binary_value_}</DisplayString> <DisplayString Condition="data_.index_==base::Value::BINARY">Binary</DisplayString>
<DisplayString Condition="type_ == DICTIONARY">DICTIONARY {dict_}</DisplayString> <DisplayString Condition="data_.index_==base::Value::DICTIONARY">Dictionary {data_.state_.tail.tail.tail.tail.tail.tail.head.impl_.body_}</DisplayString>
<DisplayString Condition="type_ == LIST">LIST {list_}</DisplayString> <DisplayString Condition="data_.index_==base::Value::LIST">List {data_.state_.tail.tail.tail.tail.tail.tail.head.impl_.body_}</DisplayString>
<Expand> <DisplayString Condition="data_.index_==base::Value::DEAD">Dead</DisplayString>
<Item Name="[type]">type_</Item> <DisplayString>Unknown type</DisplayString>
<Item Condition="type_ == BOOLEAN" Name="[boolean]">bool_value_</Item> <Expand >
<Item Condition="type_ == INTEGER" Name="[integer]">int_value_</Item> <Item Condition="data_.index_==base::Value::BOOLEAN" Name="[Value]">data_.state_.tail.head</Item>
<Item Condition="type_ == DOUBLE" Name="[double]">double_value_</Item> <Item Condition="data_.index_==base::Value::INTEGER" Name="[Value]">data_.state_.tail.tail.head</Item>
<Item Condition="type_ == STRING" Name="[string]">string_value_</Item> <Item Condition="data_.index_==base::Value::DOUBLE" Name="[Value]">*(double*)data_.state_.tail.tail.tail.head.v</Item>
<Item Condition="type_ == BINARY" Name="[binary]">binary_value_</Item> <Item Condition="data_.index_==base::Value::STRING" Name="[String]">data_.state_.tail.tail.tail.tail.head,na</Item>
<!-- Put the members for dictionary and list directly inline without <!-- Dictionary -->
requiring a separate expansion to view. --> <Item Condition="data_.index_==base::Value::DICTIONARY" Name="[size]">
<ExpandedItem Condition="type_ == DICTIONARY">dict_</ExpandedItem> data_.state_.tail.tail.tail.tail.tail.tail.head.impl_.body_.__end_ -
<ExpandedItem Condition="type_ == LIST">list_</ExpandedItem> data_.state_.tail.tail.tail.tail.tail.tail.head.impl_.body_.__begin_ </Item>
<ArrayItems Condition="data_.index_==base::Value::DICTIONARY">
<Size>
data_.state_.tail.tail.tail.tail.tail.tail.head.impl_.body_.__end_ -
data_.state_.tail.tail.tail.tail.tail.tail.head.impl_.body_.__begin_
</Size>
<ValuePointer>data_.state_.tail.tail.tail.tail.tail.tail.head.impl_.body_.__begin_</ValuePointer>
</ArrayItems>
<!-- List -->
<Item Condition="data_.index_==base::Value::LIST" Name="[size]">
data_.state_.tail.tail.tail.tail.tail.tail.head.impl_.body_.__end_ -
data_.state_.tail.tail.tail.tail.tail.tail.head.impl_.body_.__begin_ </Item>
<ArrayItems Condition="data_.index_==base::Value::LIST">
<Size>
data_.state_.tail.tail.tail.tail.tail.tail.head.impl_.body_.__end_ -
data_.state_.tail.tail.tail.tail.tail.tail.head.impl_.body_.__begin_
</Size>
<ValuePointer>(base::Value*)data_.state_.tail.tail.tail.tail.tail.tail.head.impl_.body_.__begin_</ValuePointer>
</ArrayItems>
</Expand> </Expand>
</Type> </Type>
</AutoVisualizer> </AutoVisualizer>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment