다음을 통해 공유


ICorProfilerCallback::ObjectReferences 메서드

지정된 개체가 참조하는 메모리 내의 개체에 대한 정보를 프로파일러에 알립니다.

HRESULT ObjectReferences(
    [in]  ObjectID objectId,
    [in]  ClassID  classId,
    [in]  ULONG    cObjectRefs,
    [in, size_is(cObjectRefs)] ObjectID objectRefIds[] );

매개 변수

  • objectId
    [in] 메모리 내의 개체를 참조하고 있는 개체의 ID입니다.

  • classId
    [in] 지정된 개체가 인스턴스화된 클래스의 ID입니다.

  • cObjectRefs
    [in] 지정된 개체가 참조하는 개체의 수, 즉 objectRefIds 배열에 있는 요소의 수입니다.

  • objectRefIds
    [in] objectId에서 참조하는 개체의 ID가 들어 있는 배열입니다.

설명

ObjectReferences 메서드는 가비지 수집이 완료된 후 힙에 남아 있는 각 개체에 대해 호출됩니다. 프로파일러가 이 콜백에서 오류를 반환하면 프로파일링 서비스에서는 다음 가비지 수집까지 이 콜백의 호출을 중지합니다.

ObjectReferences 콜백을 ICorProfilerCallback::RootReferences 콜백과 함께 사용하여 런타임을 위한 완전한 개체 참조 그래프를 만들 수 있습니다. CLR(공용 언어 런타임)에서는 ObjectReferences 메서드를 통해 각 개체 참조가 한 번씩만 보고되도록 합니다.

콜백 자체가 수행되는 동안에는 가비지 수집이 개체를 이동하는 중일 수 있으므로 ObjectReferences에서 반환한 개체 ID가 유효하지 않습니다. 따라서 프로파일러에서는 ObjectReferences를 호출하는 동안에는 개체를 검사하지 말아야 합니다. ICorProfilerCallback2::GarbageCollectionFinished가 호출되면 가비지 수집이 완료된 것이므로 검사를 안전하게 수행할 수 있습니다.

null ClassId는 objectId에 업로드 중인 형식이 있음을 나타냅니다.

요구 사항

플랫폼: .NET Framework 시스템 요구 사항 참조

헤더: CorProf.idl, CorProf.h

라이브러리: CorGuids.lib

.NET Framework 버전: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

참고 항목

참조

ICorProfilerCallback 인터페이스