다음을 통해 공유


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 ClassIdobjectId에 언로드 중인 형식이 있음을 나타냅니다.

요구 사항

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

헤더: CorProf.idl, CorProf.h

라이브러리: CorGuids.lib

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

참고 항목