我正在使用 arma Matrix,我想在调试期间查看值。 所以我添加了一个 natvis 文件如下:
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="arma::Mat<*>">
<DisplayString>{{ Size = {n_rows} x {n_cols} }}</DisplayString>
<Expand>
<Item Name="[size]">n_elem</Item>
<ArrayItems>
<Direction>Backward</Direction>
<Rank>2</Rank>
<Size> $i==0?n_rows:n_cols </Size>
<ValuePointer>mem</ValuePointer>
</ArrayItems>
</Expand>
</Type>
</AutoVisualizer>
然而,它根本不起作用。
我很快意识到问题可能出在
<Size> $i==0?n_rows:n_rows </Size>
所以我尝试用以下任何语句替换它并且它有效
<size> $i==0?5:8 </Size>
<size> $i==0?n_rows:8 </Size>
<Size> $i==0?5:n_cols</Size>
但是,如果我尝试以下任何语句,我将一无所获
<size> $i==0?n_rows:n_cols </Size>
<size> $i==0?n_rows:n_rows </Size>
顺便说一下,我已经在选项中将 Natvis 诊断消息设置为“错误”,但错误列表中什么也没有。
感谢您的帮助
最佳答案
转换为 int 为我解决了这个问题:
<Size> $i==0?(int)n_rows:(int)n_cols </Size>
关于c++ - 使用.natvis 文件在visual studio 2015 中自定义多维数组调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40171957/