簡體   English   中英

Natvis Visual Studio 2012 Boost矢量和矩陣

[英]Natvis Visual Studio 2012 Boost Vector and Matrix

我已經下載並安裝了cppvisualizers,以允許在Visual Studio 2012中更好地處理增強數據結構。

https://cppvisualizers.codeplex.com/

它不支持boost :: numeric :: ublas :: vector和boost :: numeric :: ublas :: matrix,因此我嘗試遵循此處有關natvis支持的說明: http ://code.msdn.microsoft 。 COM / windowsdesktop /寫入型展示台,2eae77a2

我已經在\\ Program Files(x86)\\ Microsoft Visual Studio 11.0 \\ Common7 \\ Packages \\ Debugger \\ Visualizers中添加了一個名為ublas.natvis的文件。 它包含以下代碼:

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

謝謝你的幫助。

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

更新:

向量和矩陣的可視化工具(只需在%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