简体   繁体   English

Natvis Visual Studio 2012 Boost矢量和矩阵

[英]Natvis Visual Studio 2012 Boost Vector and Matrix

I have downloaded and installed cppvisualizers to allow better handling of boost data structure in Visual Studio 2012. 我已经下载并安装了cppvisualizers,以允许在Visual Studio 2012中更好地处理增强数据结构。

https://cppvisualizers.codeplex.com/ https://cppvisualizers.codeplex.com/

It does not have support for boost::numeric::ublas::vector and boost::numeric::ublas::matrix so I tried to follow the instructions available here regarding natvis support: http://code.msdn.microsoft.com/windowsdesktop/Writing-type-visualizers-2eae77a2 它不支持boost :: numeric :: ublas :: vector和boost :: numeric :: ublas :: matrix,因此我尝试遵循此处有关natvis支持的说明: http ://code.msdn.microsoft 。 COM / windowsdesktop /写入型展示台,2eae77a2

I have added a file called ublas.natvis into \\Program Files (x86)\\Microsoft Visual Studio 11.0\\Common7\\Packages\\Debugger\\Visualizers. 我已经在\\ Program Files(x86)\\ Microsoft Visual Studio 11.0 \\ Common7 \\ Packages \\ Debugger \\ Visualizers中添加了一个名为ublas.natvis的文件。 It contains the following code: 它包含以下代码:

    <?xml version="1.0" encoding="utf-8"?>

    <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">

      <Type Name="boost::numeric::ublas::vector&lt;*&gt;">
        <DisplayString>"UBLAS Vector: Test Failure"</DisplayString>
        <Expand>
          <Item Name="[size]">_Mylast - _Myfirst</Item>
          <Item Name="[capacity]">_Myend - _Myfirst</Item>
          <ArrayItems>
            <Size>_Mylast - _Myfirst</Size>
            <ValuePointer>_Myfirst</ValuePointer>
          </ArrayItems>
        </Expand>
      </Type>

      <Type Name="std::vector&lt;*&gt;">
        <DisplayString>"STD Vector: Test Success"</DisplayString>
        <Expand>
          <Item Name="[size]">_Mylast - _Myfirst</Item>
          <Item Name="[capacity]">_Myend - _Myfirst</Item>
          <ArrayItems>
            <Size>_Mylast - _Myfirst</Size>
            <ValuePointer>_Myfirst</ValuePointer>
          </ArrayItems>
        </Expand>
      </Type>

    </AutoVisualizer>

The visualizer is able to successfully detect my custom string for std::vector. 可视化程序能够成功检测到我的std :: vector自定义字符串。 However no luck when I hover over boost::numeric::ublas::vector. 但是,当我将鼠标悬停在boost :: numeric :: ublas :: vector上时,没有运气。 Could you please guide me on setting up debugger visualizers for boost vector and matrix. 您能否指导我设置用于提升向量和矩阵的调试器可视化程序。

Thanks for your help. 谢谢你的帮助。

You should enable Natvis diagnostic for Visual Studio 2012 like described in your article ( http://code.msdn.microsoft.com/windowsdesktop/Writing-type-visualizers-2eae77a2 ) Natvis diagnostics, that help me a lot with debugging cppvisualizers. 如文章( http://code.msdn.microsoft.com/windowsdesktop/Writing-type-visualizers-2eae77a2 )中所述,您应该为Visual Studio 2012启用Natvis诊断,这对调试cppvisualizers很有帮助。

Update: 更新:

Visualizer for vector and matrix (just create .natvis file in %USERPROFILE%\\My Documents\\Visual Studio 2012\\Visualizers\\ with this content) 向量和矩阵的可视化工具(只需在%USERPROFILE%\\My Documents\\Visual Studio 2012\\Visualizers\\使用此内容创建.natvis文件)

<?xml version='1.0' encoding='utf-8'?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">

<Type Name="boost::numeric::ublas::unbounded_array&lt;*,*&gt;">
    <DisplayString>{{ size={size_} }}</DisplayString>
    <Expand>
        <Item Name="[size]">size_</Item>
        <ArrayItems>
            <Size>size_</Size>
            <ValuePointer>data_</ValuePointer>
        </ArrayItems>
    </Expand>
</Type>

<Type Name="boost::numeric::ublas::vector&lt;*&gt;">
    <DisplayString>{data_}</DisplayString>
    <Expand>
        <ExpandedItem>data_</ExpandedItem>
    </Expand>
</Type>

<Type Name="boost::numeric::ublas::matrix&lt;*&gt;">
    <DisplayString>{{ size={size1_}x{size2_} }}</DisplayString>
    <Expand>
        <ExpandedItem>data_</ExpandedItem>
    </Expand>
</Type>

</AutoVisualizer>

请尝试使用<Type Name="boost::numeric::ublas::vector&lt;*,*&gt;">

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM