次の方法で共有


NatVis のネイティブ デバッガー オブジェクト

概要

ネイティブ デバッガー オブジェクトは、デバッガー環境のさまざまなコンストラクトと動作を表します。 デバッガー オブジェクトの例を次に示します。

  • セッション
  • スレッド/スレッド
  • プロセス/プロセス
  • スタック フレーム/スタック フレーム
  • ローカル変数
  • モジュール/モジュール
  • 効用
  • 状態
  • 設定

dx コマンドと LINQ を使用して、デバッガー オブジェクトを操作できます。 詳細については、「 dx (デバッガー オブジェクト モデル式の表示) 」および「 LINQ とデバッガー オブジェクトの使用」を参照してください。

JavaScript を使用してデバッガー オブジェクトを操作することもできます。 詳細については、「 JavaScript 拡張機能のネイティブ デバッガー オブジェクト」を参照してください。

このトピックでは、デバッガー オブジェクトを表示するカスタム NatVis ビジュアライザーを作成する方法について説明します。

NatVis 開発リソース

NatVis の操作に関する一般的な情報については、これらのリソースを参照してください。

ネイティブ オブジェクトのカスタム ビューを作成する

.nvload

.nvlist

.nvunload

.nvunloadall

カスタム NatVis オブジェクトの例

CDog クラスのインスタンスを持つ単純な C++ アプリケーションを作成 します

class CDog
{
public:
   CDog(){m_age = 8; m_weight = 30;}
   long m_age;
   long m_weight;
};

int main()
{
   CDog MyDog;
   printf_s("%d, %d\n", MyDog.m_age, MyDog.m_weight);
   return 0;
}

次の XML を含む Dog.natvis という名前のファイルを作成します。

<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="https://schemas.microsoft.com/vstudio/debugger/natvis/2010">
   <Type Name="CDog">
      <DisplayString>{{Age = {m_age} years. Weight = {m_weight} pounds.}}</DisplayString>
   </Type>
</AutoVisualizer>

Debugging Tools for Windows のインストール ディレクトリの Visualizers フォルダーに Dog.natvis をコピーします。 例えば次が挙げられます。

C:\Program Files\Debugging Tools for Windows (x64)\Visualizers

プログラムを実行し、main 関数で中断します。 変数 MyDog 初期化されるように手順を実行します。 MyDog??を使用して表示し、dxを使用してもう一度表示します。

0:000> ??MyDog
class CDog
   +0x000 m_age        : 0n8
   +0x004 m_weight     : 0n30
0:000> *
0:000> dx -r1 MyDog
.....
MyDog     : {Age = 8 years. Weight = 30 pounds.} [Type: CDog]

こちらも参照ください

dx (デバッガー オブジェクト モデル式の表示)

デバッガー オブジェクトでの LINQ の使用

JavaScript 拡張機能 でのネイティブ デバッガー オブジェクトの