2

現在、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 があるように、すべての配列を表示したいと思います。

前もって感謝します

4

0 に答える 0