summaryrefslogtreecommitdiff
path: root/buildscripts/win/mongodb.natvis
blob: 7e6a6bfb854a925009368aad08fb5870f68aaf14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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&lt;*&gt;">
    <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&lt;*&gt;">
    <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&lt;*&gt;">
    <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>