COR_GC_REFERENCE Structure
Contains information about an object that is to be garbage-collected.
Syntax
typedef struct _COR_GC_REFERENCE {
ICorDebugAppDomain *domain;
ICorDebugValue *location;
CorGCReferenceType type;
UINT64 extraData;
} COR_GC_REFERENCE;
Members
Member | Description |
---|---|
domain |
A pointer to the application domain to which the handle or object belongs. Its value may be null . |
location |
Either an ICorDebugValue or an ICorDebugReferenceValue interface that corresponds to the object to be garbage-collected. |
type |
A CorGCReferenceType enumeration value that indicates where the root came from. For more information, see the Remarks section. |
extraData |
Additional data about the object to be garbage-collected. This information depends on the source of the object, as indicated by the type field. For more information, see the Remarks section. |
Remarks
The type
field is a CorGCReferenceType enumeration value that indicates where the reference came from. A particular COR_GC_REFERENCE
value can reflect any of the following kinds of managed objects:
Objects from all managed stacks (
CorGCReferenceType.CorReferenceStack
). This includes live references in managed code, as well as objects created by the common language runtime.Objects from the handle table (
CorGCReferenceType.CorHandle*
). This includes strong references (HNDTYPE_STRONG
andHNDTYPE_REFCOUNT
) and static variables in a module.Objects from the finalizer queue (
CorGCReferenceType.CorReferenceFinalizer
). The finalizer queue roots objects until the finalizer has run.
The extraData
field contains extra data depending on the source (or type) of the reference. Possible values are:
DependentSource
. If thetype
isCorGCReferenceType.CorHandleStrongDependent
, this field is the object that, if alive, roots the object to be garbage-collected atCOR_GC_REFERENCE.Location
.RefCount
. If thetype
isCorGCReferenceType.CorHandleStrongRefCount
, this field is the reference count of the handle.Size
. If thetype
isCorGCReferenceType.CorHandleStrongSizedByref
, this field is the last size of the object tree for which the garbage collector calculated the object roots. Note that this calculation is not necessarily up to date.
Requirements
Platforms: See System Requirements.
Header: CorDebug.idl, CorDebug.h
Library: CorGuids.lib
.NET Framework Versions: Available since 4.5