4

文字列型の「autoexp.dat」ベースのビジュアライザーを作成しようとしています。Null で終わる文字列フィールドを含む非常に単純なテスト タイプ用のビジュアライザーを作成することを試みて、野望を縮小しました。

namespace thizz { namespace izz {
        class MyType {
            const char* _ptr;
        public:
            MyType(const char* ptr) : _ptr(ptr) {}
        };
    }
}

これはビジュアライザーに対する私の刺し傷ですが、Visual Studio (2010) がこのタイプのインスタンスを表示する方法には影響しません。

thizz::izz::MyType
{
 preview ([$e._ptr,s])
}

(これは、 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Packages\Debugger\autoexp.datの [Visualizers] セクションの上部にあります)。

このタイプのインスタンスを監視する:

thizz::izz::MyType t("testing testing");

表示するだけ

t | {_ptr=0x0f56a6fc "testing testing" } | thizz::izz::MyType

ウォッチ ウィンドウで。

4

2 に答える 2

1

さらに用途の広いビューアを取得するには、これを使用するように変更してみてください:

thizz::izz::MyType {
preview ( #( [$e._ptr,s] ) )
stringview ( #( [$e._ptr,sb] ) )
}

これにより、文字列が長い場合に大きなテキスト ビュー ウィンドウを開く虫めがねアイコンも表示されます。また、HTML または XML としてレンダリングするオプションも提供されます。

ファイルの形式が空白に敏感であるだけでなく、文字列にコロンを使用できないこともわかりました。そうしないと、解析エラーが発生します。

デバッガーのビジュアライザーは信じられないほど強力ですが、構文は非常に当惑する可能性があります。一般的なアドバイスとして、セクションの最初にいくつかのエントリを作成して[AutoExpand]、最も関心のあるデータ型を要約することをお勧めします。次に、カスタム コンテナーがある場合はvectorlist、 などの例をコピーして適応させます。これにより、最大のリターンが得られます。あなたの時間への投資のために。

于 2012-04-26T14:54:18.370 に答える
0

autoexp.dat の元の「コード」が機能しなかった明確な理由を示すことはできませんが、空白をすべて削除すると同じコードが機能することがわかりました。

次に、空白を再度追加してみましたが、定義を機能させ続けるには、最初の開き中括弧を最初の行に保持する必要があることがわかりました。

于 2012-04-26T10:49:47.247 に答える