次の方法で共有


COR_GC_REFERENCE構造体

ガベージ コレクションするオブジェクトに関する情報を格納します。

構文

typedef struct _COR_GC_REFERENCE {
    ICorDebugAppDomain *domain;
    ICorDebugValue *location;
    CorGCReferenceType type;
    UINT64 extraData;
} COR_GC_REFERENCE;

Members

メンバー Description
domain ハンドルまたはオブジェクトが属するアプリケーション ドメインへのポインター。 その値は nullされる場合があります。
location ガベージ コレクションするオブジェクトに対応する ICorDebugValue または ICorDebugReferenceValue インターフェイス。
type ルートの取得元を示す CorGCReferenceType 列挙値。 詳細については、「解説」セクションを参照してください。
extraData ガベージ コレクションするオブジェクトに関する追加データ。 この情報は、 type フィールドで示されているように、オブジェクトのソースによって異なります。 詳細については、「解説」セクションを参照してください。

注釈

type フィールドは、参照の取得元を示す CorGCReferenceType 列挙値です。 特定の COR_GC_REFERENCE 値は、次のいずれかの種類のマネージド オブジェクトを反映できます。

  • すべてのマネージド スタックのオブジェクト (CorGCReferenceType.CorReferenceStack)。 これには、マネージド コード内のライブ参照と、共通言語ランタイムによって作成されたオブジェクトが含まれます。
  • ハンドル テーブル (CorGCReferenceType.CorHandle*) のオブジェクト。 これには、モジュール内の厳密な参照 (HNDTYPE_STRONGHNDTYPE_REFCOUNT) と静的変数が含まれます。
  • ファイナライザー キューのオブジェクト (CorGCReferenceType.CorReferenceFinalizer)。 ファイナライザーキューは、ファイナライザーが実行されるまでオブジェクトをルートします。

extraData フィールドには、参照のソース (または型) に応じて追加のデータが含まれます。 使用可能な値は次のとおりです。

  • DependentSourcetypeCorGCReferenceType.CorHandleStrongDependentされている場合、このフィールドは、生きている場合は、COR_GC_REFERENCE.Locationでガベージ コレクションされるオブジェクトをルート化するオブジェクトです。
  • RefCounttypeCorGCReferenceType.CorHandleStrongRefCountの場合、このフィールドはハンドルの参照カウントです。
  • SizetypeCorGCReferenceType.CorHandleStrongSizedByrefされている場合、このフィールドはガベージ コレクターがオブジェクト ルートを計算したオブジェクト ツリーの最後のサイズです。 この計算は必ずしも最新であるとは限らないことに注意してください。

Requirements

プラットフォーム:サポートされている .NET オペレーティング システムを参照してください。

ヘッダ: CorDebug.idl、CorDebug.h

図書館: CorGuids.lib

.NET のバージョン: .NET Framework 4.5 以降で使用可能