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
에 언로드 중인 형식이 있음을 나타냅니다.
요구 사항
플랫폼:시스템 요구 사항을 참조하세요.
헤더: CorProf.idl, CorProf.h
라이브러리: CorGuids.lib
.NET Framework 버전: 2.0부터 사용 가능
참고 항목
.NET