包含要記憶體回收之物件的相關資訊。
語法
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)。 這包括 Managed 程式碼中的即時參考,以及 Common Language 執行階段所建立的物件。 - 控點資料表 ()
CorGCReferenceType.CorHandle*中的物件。 這包括模組中的強引用 (HNDTYPE_STRONG和HNDTYPE_REFCOUNT) 和靜態變數。 - 來自終結器佇列 ()
CorGCReferenceType.CorReferenceFinalizer的物件。 終結器佇列會根目錄物件,直到終結器執行為止。
此 extraData 欄位包含額外的資料,視參考的來源 (或類型) 而定。 可能的值包括:
-
DependentSource。 如果 是typeCorGCReferenceType.CorHandleStrongDependent,則此欄位是物件,如果還活著,則將要進行記憶體回收的物件根源設在COR_GC_REFERENCE.Location。 -
RefCount。 如果是typeCorGCReferenceType.CorHandleStrongRefCount,則此欄位是控制碼的參照計數。 -
Size。 如果 是typeCorGCReferenceType.CorHandleStrongSizedByref,則此欄位是記憶體回收器計算物件根目錄的物件樹狀結構的最後一個大小。 請注意,此計算不一定是最新的。
需求
平台: 請參閱 .NET 支援的作業系統。
標題: CorDebug.idl、CorDebug.h
圖書館: CorGuids.lib
.NET 版本: 自 .NET Framework 4.5 起提供