[英]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<*>">
<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<*>">
<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<*,*>">
<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<*>">
<DisplayString>{data_}</DisplayString>
<Expand>
<ExpandedItem>data_</ExpandedItem>
</Expand>
</Type>
<Type Name="boost::numeric::ublas::matrix<*>">
<DisplayString>{{ size={size1_}x{size2_} }}</DisplayString>
<Expand>
<ExpandedItem>data_</ExpandedItem>
</Expand>
</Type>
</AutoVisualizer>
请尝试使用<Type Name="boost::numeric::ublas::vector<*,*>">
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.