首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Natvis Visual Studio 2012 Boost矢量和矩阵

Natvis Visual Studio 2012 Boost矢量和矩阵
EN

Stack Overflow用户
提问于 2012-11-03 03:55:39
回答 2查看 2.9K关注 0票数 2

我已经下载并安装了cppvisualizers,以便在Visual Studio 2012中更好地处理boost数据结构。

https://cppvisualizers.codeplex.com/

它不支持boost::numeric::ublas::vector和boost::numeric::ublas::matrix,所以我尝试按照这里提供的关于natvis支持的说明进行操作:http://code.msdn.microsoft.com/windowsdesktop/Writing-type-visualizers-2eae77a2

我已经在\Program Files (x86)\Microsoft Visual Studio11.0\Common7\Packages\Debugger\Visualizers中添加了一个名为ublas.natvis的文件。它包含以下代码:

代码语言:javascript
复制
    <?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>

可视化工具能够成功地检测到std::vector的自定义字符串。然而,当我将鼠标悬停在boost::numeric::ublas::vector上时,我就没那么幸运了。你能指导我设置调试器可视化工具的升压矢量和矩阵。

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-13 21:33:45

你应该像你的文章(http://code.msdn.microsoft.com/windowsdesktop/Writing-type-visualizers-2eae77a2)中描述的那样,为Visual Studio2012启用Natvis诊断,这对我调试cppvisualizers有很大帮助。

更新:

矢量和矩阵的可视化工具(只需在%USERPROFILE%\My Documents\Visual Studio 2012\Visualizers\中创建包含此内容的.natvis文件)

代码语言:javascript
复制
<?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>
票数 5
EN

Stack Overflow用户

发布于 2012-11-03 05:17:12

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13202157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档