gpt4 book ai didi

c++ - Natvis Visual Studio 2012 Boost vector 和矩阵

转载 作者:搜寻专家 更新时间:2023-10-31 00:41:26 25 4
gpt4 key购买 nike

我已经下载并安装了 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 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 上时,运气不佳。您能否指导我为 boost vector 和矩阵设置调试器可视化工具。

感谢您的帮助。

最佳答案

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

更新:

vector 和矩阵的可视化器(只需在 %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>

关于c++ - Natvis Visual Studio 2012 Boost vector 和矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13202157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com