简体   繁体   中英

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.

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

I have added a file called ublas.natvis into \\Program Files (x86)\\Microsoft Visual Studio 11.0\\Common7\\Packages\\Debugger\\Visualizers. 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. However no luck when I hover over 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.

Update:

Visualizer for vector and matrix (just create .natvis file in %USERPROFILE%\\My Documents\\Visual Studio 2012\\Visualizers\\ with this content)

<?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;">

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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