在natvis visualiser的第一个扩展级别上展开模板类型的成员

时间:2014-05-08 16:17:18

标签: visual-studio-2013 natvis

VS2013中shared_ptr的默认直观设置器就是这样(很多东西都被修剪掉了!):

<Type Name="CA::shared_ptr&lt;*&gt;">
  <Expand>
    <Item Condition="_Ptr != 0" Name="[ptr]">_Ptr</Item>
  </Expand>
</Type>

这意味着在调试器中,您必须展开shared_ptr,然后展开[ptr]'成员'以查看指向对象的成员。指向int的指针的层次结构看起来像(忽略原始视图,分配器和删除器):

myIntPtr
  [ptr]
    42

我想编写一个替换项,将所有指向对象的成员放在一个级别,坐在[ptr]当前所在的层次结构中的级别。这看起来像:

myIntPtr
  42

是否有一些允许的语法?我应该注意,我正在寻找支持显示所有模板参数成员的一般语法,而不是仅适用于shared_ptr的内容 - shared_ptr只是一个方便的例子。

1 个答案:

答案 0 :(得分:3)

我认为这就是&#34; ExpandedItem&#34;标签是有益的。他们甚至给出了一个类似于你的例子。见这里:http://msdn.microsoft.com/en-us/library/jj620914.aspx#BKMK_ExpandedItem_expansion