ガベージ コレクションするオブジェクトに関する情報を格納します。
構文
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_STRONGとHNDTYPE_REFCOUNT) と静的変数が含まれます。 - ファイナライザー キューのオブジェクト (
CorGCReferenceType.CorReferenceFinalizer)。 ファイナライザーキューは、ファイナライザーが実行されるまでオブジェクトをルートします。
extraData フィールドには、参照のソース (または型) に応じて追加のデータが含まれます。 使用可能な値は次のとおりです。
-
DependentSource。typeがCorGCReferenceType.CorHandleStrongDependentされている場合、このフィールドは、生きている場合は、COR_GC_REFERENCE.Locationでガベージ コレクションされるオブジェクトをルート化するオブジェクトです。 -
RefCount。typeがCorGCReferenceType.CorHandleStrongRefCountの場合、このフィールドはハンドルの参照カウントです。 -
Size。typeがCorGCReferenceType.CorHandleStrongSizedByrefされている場合、このフィールドはガベージ コレクターがオブジェクト ルートを計算したオブジェクト ツリーの最後のサイズです。 この計算は必ずしも最新であるとは限らないことに注意してください。
Requirements
プラットフォーム:サポートされている .NET オペレーティング システムを参照してください。
ヘッダ: CorDebug.idl、CorDebug.h
図書館: CorGuids.lib
.NET のバージョン: .NET Framework 4.5 以降で使用可能
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET