Я скачал и установил cppvisualizer, чтобы обеспечить лучшую обработку ускоренной структуры данных в Visual Studio 2012.
https://cppvisualizers.codeplex.com/
У него нет поддержки boost :: numeric :: ublas :: vector и boost :: numeric :: ublas :: matrix, поэтому я попытался следовать инструкциям, доступным здесь для поддержки natvis:
http://code.msdn.microsoft.com/windowsdesktop/Writing-type-visualizers-2eae77a2
Я добавил файл с именем ublas.natvis в \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ Packages \ Debugger \ Visualizers. Он содержит следующий код:
<?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. Подскажите, пожалуйста, как настроить визуализаторы отладчика для вектора усиления и матрицы.
Спасибо за вашу помощь.
Вы должны включить диагностику Natvis для Visual Studio 2012, как описано в вашей статье (http://code.msdn.microsoft.com/windowsdesktop/Writing-type-visualizers-2eae77a2) Диагностика Natvis, которая мне очень помогает с отладкой cppvisualizer.
Обновить:
Визуализатор для вектора и матрицы (просто создайте файл .natvis в %USERPROFILE%\My Documents\Visual Studio 2012\Visualizers\
с этим контентом)
<?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<*,*>">
вместо.