다음을 통해 공유


COR_GC_REFERENCE 구조체

가비지 수집할 개체에 대한 정보를 포함합니다.

구문

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

멤버

멤버 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 필드에는 참조의 원본(또는 형식)에 따라 추가 데이터가 포함됩니다. 가능한 값은 다음과 같습니다.

  • DependentSource. type 필드가 CorGCReferenceType.CorHandleStrongDependent이고 이 필드는 활성 상태이면 COR_GC_REFERENCE.Location에서 가비지 수집할 개체를 루트로 지정하는 개체입니다.

  • RefCount. type 필드가 CorGCReferenceType.CorHandleStrongRefCount인 경우 이 필드는 핸들의 참조 수입니다.

  • Size. type 필드가 CorGCReferenceType.CorHandleStrongSizedByref인 경우 이 필드는 가비지 수집기에서 개체 루트를 계산한 개체 트리의 마지막 크기입니다. 이 계산이 반드시 최신 상태인 것은 아닙니다.

요구 사항

플랫폼:시스템 요구 사항을 참조하세요.

헤더: CorDebug.idl, CorDebug.h

라이브러리: CorGuids.lib

.NET Framework 버전: 4.5부터 사용 가능

참고 항목