【问题标题】:Visual Studio .natvis file - matricesVisual Studio .natvis 文件 - 矩阵
【发布时间】:2015-12-08 12:50:54
【问题描述】:

我正在尝试在 Visual Studio 2013 调试器中显示一个矩阵类。类的相关部分是这样的:

class mat {
private:
    size_t rowdim, coldim;
    double* _mem;
};

我试图将其可视化为一个多维数组,但我无法弄清楚当维度不存储为数组时如何指定维度的大小。这就是我正在尝试的:

<Type Name="mat">
    <DisplayString>{{ Matrix {rowdim}x{coldim} }}</DisplayString>
    <StringView>_mem,[rowdim]</StringView>
    <Expand>
        <Item Name="[size]" ExcludeView="simple" >rowdim</Item>
        <ArrayItems>
            <Direction>Forward</Direction>
            <Rank>2</Rank>
            <Size>{rowdim, coldim}</Size>
            <ValuePointer>_mem</ValuePointer>
        </ArrayItems>
    </Expand>
</Type>

但似乎没有任何方法可以将维度作为文字或不同的变量,仅作为要索引的数组。有谁知道有没有办法做到这一点?

【问题讨论】:

    标签: c++ visual-studio-2013 visual-studio-debugging debuggervisualizer natvis


    【解决方案1】:

    您可以指定基本表达式,调试器将评估它们,尝试使用:

    &lt;Size&gt;$i == 0 ? rowdim : coldim&lt;/Size&gt;

    Visual Studio 2015 接受这个,我不再安装 2013。

    【讨论】:

    • 好主意。我会在早上试试。
    猜你喜欢
    • 1970-01-01
    • 2013-07-22
    • 2016-07-09
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多