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