現在、autoexp.dat と natvis を使用して、Visual Studio 2010 と Visual Studio 2012 で自分のクラスのデバッグ ビジュアライザーを作成しています。natvis ではすべて正常に動作しますが、autoexp.dat には 1 つの問題があります。
クラスの静的配列を作成すると、デバッガーは配列をクラスの配列ではなく、クラスの 1 つのインスタンスとして表示します。これは、children セクションを記述した場合にのみ発生します。
私の autoexp.dat :
TestA{
preview( #("a=", $e.m_a, " b=",$e.m_b) )
children(#(#(a : $e.m_a),#(b : $e.m_b)))
}
そして、問題を表示するための私の簡単なプログラム:
class TestA
{
public:
TestA():m_a(0),m_b(0){}
TestA(int a, int b):m_a(a),m_b(b){}
private :
int m_a;
int m_b;
};
int main()
{
TestA test[10];
for (int i = 0; i < 10; ++i)
{
test[i] = TestA(i,i);
}
return 0;
}
これは、子セクションがある場合とない場合のデバッガーでの表示です(申し訳ありませんが、画像を投稿できません)。
あり: http://i.stack.imgur.com/LIhEv.jpg なし: http://i.stack.imgur.com/QpsNu.jpg
子セクションがなく、m_a/m_b ではなく a/b があるように、すべての配列を表示したいと思います。
前もって感謝します