1

私はarma Matrixを使用しています。デバッグ中に値を調べたいと思います。 は、だから私は以下のようにnatvisファイルを追加します。ビジュアルスタジオ2015で.natvisファイルを使用して多次元配列のデバッグをカスタマイズします。

<?xml version="1.0" encoding="utf-8"?> 
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> 
    <Type Name="arma::Mat&lt;*&gt;"> 
    <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> 

を働くかもしれrelize

私はもう何も得ません

<size> $i==0?n_rows:n_cols </Size> 
<size> $i==0?n_rows:n_rows </Size> 

ところで、私はNatvis診断メッセージを回しましたエラーリストには何もありません。任意の助け

おかげ

+0

私の理解が、それは誤りではないだろうということです、それだけでデバッガウィンドウが認識できなかったことを意味しArrayItemsの下にある特定のタグ/プロパティのパラメータについては、ここで「ArrayItems Expansion」の使用方法についてこのサンプルをご覧ください:https://code.msdn.microsoft.com/windowsdesktop/Writing-type-visualizers-2eae77a2 –

+0

Thanks Jack、 1D配列の例を示しています。また、私はMSDNの説明を読んで、のサイズ[$ i]を使用しました。つまり、サイズは1 * 2の配列に格納され、if文なしで呼び出すことができます。しかし、私はarmadilloを使用しており、行列のサイズは配列の代わりに2つのintで定義されています。 – user3003238

+0

1つのドライブで簡単なサンプルを共有できますか?私はあなたと同じ環境を使って私の側でそれをデバッグします。 –

答えて

0

が私のためにこれを解決int型にキャスト:

<Size> $i==0?(int)n_rows:(int)n_cols </Size>

関連する問題