2012-11-02 46 views
2

我已經下載並安裝cppvisualizers允許更好的操控性提升數據結構在Visual Studio 2012Natvis的Visual Studio 2012升壓向量和矩陣

https://cppvisualizers.codeplex.com/

它不具有升壓支持::數字: :的uBLAS ::向量和boost ::數字:: uBLAS庫::矩陣,所以我試圖按照有關natvis支持可在這裏說明: http://code.msdn.microsoft.com/windowsdesktop/Writing-type-visualizers-2eae77a2

我有一個文件名爲添加到ublas.natvis \程序文件(x86 )\ Microsoft Visual Studio 11.0 \ Common7 \ Packages \ Deb ugger \展示臺。它包含以下代碼:

<?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上時沒有運氣。您能否指導我設置用於boost向量和矩陣的調試器可視化器。

感謝您的幫助。

回答

5

您應該啓用Natvis診斷Visual Studio 2012,如您的文章(http://code.msdn.microsoft.com/windowsdesktop/Writing-type-visualizers-2eae77a2)Natvis診斷中所述,這對診斷調試器很有幫助。

更新:

展臺的向量和矩陣(剛剛創造%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> 
+0

你先生的確是一種善良的龍。感謝您的意見。 – Atlas

+0

@Atlas:還可以看看KindDragons VS擴展:http://visualstudiogallery.msdn.microsoft.com/c7e02633-86d9-4262-b745-6cc647afb3a8和http://visualstudiogallery.msdn.microsoft.com/61f12e7a- bc62-4b2c-b02e-d66014688c2e – dalle

0

嘗試用<Type Name="boost::numeric::ublas::vector&lt;*,*&gt;">代替。

+0

感謝您的輸入,但是這是行不通的。 – Atlas