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

概要

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

  • セッション
  • Threads/Thread
  • Processes/Process
  • Stack Frames/Stack Frame
  • Local Variables
  • Modules/Module
  • ユーティリティ
  • 都道府県
  • 設定

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

プログラムを実行し、メイン関数で中断します。 変数 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 拡張機能のネイティブ デバッガー オブジェクト