diff options
author | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2019-01-02 15:39:47 -0500 |
---|---|---|
committer | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2019-01-11 13:56:53 -0500 |
commit | c338365277ede83996783e6b61dda0caa8914469 (patch) | |
tree | 3a44c1815bb3066e391393c9c75ef54d9a3c75e5 /buildscripts/win/mongodb.natvis | |
parent | 2f67f3c66271e724b48afa2db88e8b6c3317f6ab (diff) | |
download | mongo-c338365277ede83996783e6b61dda0caa8914469.tar.gz |
SERVER-38951 Visual Studio Debugger Visualizers
Diffstat (limited to 'buildscripts/win/mongodb.natvis')
-rw-r--r-- | buildscripts/win/mongodb.natvis | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/buildscripts/win/mongodb.natvis b/buildscripts/win/mongodb.natvis new file mode 100644 index 00000000000..7e6a6bfb854 --- /dev/null +++ b/buildscripts/win/mongodb.natvis @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="utf-8"?> +<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> + <!-- + NatVis Documentation: + https://docs.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects?view=vs-2017 + + Boost Visualizers: + https://marketplace.visualstudio.com/items?itemName=ArkadyShapkin.CDebuggerVisualizersforVS2017 + https://github.com/KindDragon/CPPDebuggerVisualizers + + To load in Visual Studio, the natvis file must be in the Visual Studio project. + To load in WinDBG, run ".nvload mongdb.natvis" + --> + <Type Name="mongo::Status"> + <DisplayString Condition="_error == 0x0">OK</DisplayString> + <DisplayString>{{Error={_error,d}}}</DisplayString> + </Type> + + <Type Name="mongo::StatusWith<*>"> + <DisplayString Condition="_status._error == 0x0">{{Value={_t}}}</DisplayString> + <DisplayString Condition="_status._error != 0x0">{{Error={_status._error,d}}}</DisplayString> + <DisplayString >{_status}</DisplayString> + <Expand> + <Item Name="Status">_status</Item> + <ExpandedItem>_t</ExpandedItem> + </Expand> + </Type> + + <Type Name="mongo::StringData"> + <DisplayString Condition="_size == 0">empty</DisplayString> + <DisplayString>{_data,[_size]s8}</DisplayString> + <StringView>_data,[_size]s8</StringView> + </Type> + + <Type Name="absl::container_internal::raw_hash_set<*>"> + <DisplayString>{{ size={size_} }}</DisplayString> + <Expand> + <Item Name="[capacity]">capacity_</Item> + <CustomListItems> + <Variable Name="NumBuckets" InitialValue="capacity_" /> + <Variable Name="BucketIndex" InitialValue="0" /> + <Size>size_</Size> + <Loop> + <Break Condition="BucketIndex == NumBuckets"/> + <If Condition="ctrl_[BucketIndex] >= 0"> + <Item>slots_[BucketIndex],na</Item> + </If> + <Exec>++BucketIndex</Exec> + </Loop> + </CustomListItems> + </Expand> + </Type> + + <Type Name="absl::node_hash_map<*>"> + <DisplayString>{{ size={size_} }}</DisplayString> + <Expand> + <Item Name="[capacity]">capacity_</Item> + <CustomListItems> + <Variable Name="NumBuckets" InitialValue="capacity_" /> + <Variable Name="BucketIndex" InitialValue="0" /> + <Size>size_</Size> + <Loop> + <Break Condition="BucketIndex == NumBuckets"/> + <If Condition="ctrl_[BucketIndex] >= 0"> + <Item Name="[{slots_[BucketIndex]->first,na}]">slots_[BucketIndex]->second,na</Item> + </If> + <Exec>++BucketIndex</Exec> + </Loop> + </CustomListItems> + </Expand> + </Type> + +</AutoVisualizer> |