Share via


COR_GC_REFERENCE 構造体

ガベージ コレクトされるオブジェクトに関する情報が含まれます。

構文

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

メンバー

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

解説

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

  • すべてのマネージド スタックのオブジェクト (CorGCReferenceType.CorReferenceStack)。 これには、マネージド コードのライブ参照や、共通言語ランタイムによって作成されたオブジェクトが含まれます。

  • ハンドル テーブルからのオブジェクト (CorGCReferenceType.CorHandle*)。 これには、モジュール内の強い参照 (HNDTYPE_STRONG および HNDTYPE_REFCOUNT) と静的変数が含まれます。

  • ファイナライザー キューからのオブジェクト (CorGCReferenceType.CorReferenceFinalizer)。 ファイナライザー キューは、ファイナライザーが実行されるまではオブジェクトをルートにします。

extraData フィールドには、参照のソース (または種類) に応じて追加のデータが含まれます。 次のいずれかの値になります。

  • DependentSource. typeCorGCReferenceType.CorHandleStrongDependent の場合、このフィールドは、動作中の場合は COR_GC_REFERENCE.Location でガベージ コレクトされるオブジェクトをルートにするオブジェクトです。

  • RefCount. typeCorGCReferenceType.CorHandleStrongRefCount の場合、このフィールドはハンドルの参照数です。

  • Size. typeCorGCReferenceType.CorHandleStrongSizedByref の場合、このフィールドは、ガベージ コレクターによってオブジェクトのルートが計算されたオブジェクト ツリーの最後のサイズです。 この計算は必ずしも最新ではないことに注意してください。

必要条件

:システム要件」を参照してください。

ヘッダー: CorDebug.idl、CorDebug.h

ライブラリ: CorGuids.lib

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

関連項目