问题描述
我正在使用VSCode开发包含很多ndarray的rust应用程序。当我设置断点并观察ndarray变量时,它仅显示指针。我不知道如何查看内容。我尝试了cppvsdbg和lldb(vscode-codelldb),两者都有相同的问题?我可以在调试控制台中键入任何命令来扩展变量吗?
解决方法
我现在可以使用下面的 natvis 对其进行可视化,
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="ndarray::ArrayBase<*,*>">
<DisplayString>{{Modified by Selva}}</DisplayString>
<Expand HideRawView="false">
<ArrayItems>
<Direction>Forward</Direction>
<Rank>sizeof(dim.index)/sizeof(*dim.index)</Rank>
<Size>(int)dim.index[$i]</Size>
<!-- <Size>$i==0?(int)dim.index[0]:(int)dim.index[1]</Size> -->
<ValuePointer>data.ptr.pointer</ValuePointer>
</ArrayItems>
</Expand>
</Type>
</AutoVisualizer>