在 VSCode/Natvis 中使用 CustomListItems

问题描述

我正在使用 Natvis 在 VSCode 中为我的自定义类开发一些调试可视化。 将 CustomListItems 与一个简单的例子一起使用,但我无法让它工作。 基本上,我认为下面的代码应该显示 16 个值都为 1 的项目,但我只得到了类的基本类型..

  <Type Name="vq23_t">
    <displayString>16 x q23 Array</displayString>
    <Expand>
        <CustomListItems>
            <Size>16</Size>
            <Variable Name="ind" InitialValue="0" />
            <Loop Condition="ind &lt; 16">
                <Item Name="{ind}"> 1 </Item>
                <exec> ++ind </exec>
            </Loop>
        </CustomListItems>
    </Expand>
  </Type>

我得到了什么:

噘嘴:16 x q23 阵列
>[原始视图]:0x56594b40

花了很多时间尝试各种事情,所以我将问题简化到这个基本级别,但无法让它发挥作用。

解决方法

MSDN 所述,您可以激活日志记录以调试 natvis。

您的情况的解决方案是更改 SizeVariable 的顺序,并将 exec 更改为 Exec

  <Type Name="vq23_t">
    <DisplayString>16 x q23 Array</DisplayString>
    <Expand>
      <CustomListItems>
        <Variable Name="ind" InitialValue="0" />
        <Size>16</Size>
        <Loop Condition="ind &lt; 16">
          <Item Name="{ind}"> 1 </Item>
          <Exec> ++ind </Exec>
        </Loop>
      </CustomListItems>
    </Expand>
  </Type>