ICorProfilerCallback::ObjectReferences — Metoda
Powiadamia profilera o obiektach w pamięci, do których odwołuje się określony obiekt.
Składnia
HRESULT ObjectReferences(
[in] ObjectID objectId,
[in] ClassID classId,
[in] ULONG cObjectRefs,
[in, size_is(cObjectRefs)] ObjectID objectRefIds[] );
Parametry
objectId
[in] Identyfikator obiektu odwołującego się do obiektów.
classId
[in] Identyfikator klasy, dla którego określony obiekt jest wystąpieniem.
cObjectRefs
[in] Liczba obiektów, do których odwołuje się określony obiekt (czyli liczba elementów w tablicy objectRefIds
).
objectRefIds
[in] Tablica identyfikatorów obiektów, do których odwołuje się obiekt objectId
.
Uwagi
Metoda jest wywoływana ObjectReferences
dla każdego obiektu pozostałego w stercie po zakończeniu odzyskiwania pamięci. Jeśli profiler zwróci błąd z tego wywołania zwrotnego, usługi profilowania przestaną wywoływać to wywołanie zwrotne do następnego odzyskiwania pamięci.
Wywołanie ObjectReferences
zwrotne może być używane w połączeniu z wywołaniem zwrotnym ICorProfilerCallback::RootReferences , aby utworzyć pełny wykres odwołania do obiektu dla środowiska uruchomieniowego. Środowisko uruchomieniowe języka wspólnego (CLR) zapewnia, że każde odwołanie do obiektu jest zgłaszane tylko raz przez metodę ObjectReferences
.
Identyfikatory obiektów zwracane przez ObjectReferences
program są nieprawidłowe podczas samego wywołania zwrotnego, ponieważ odzyskiwanie pamięci może znajdować się w środku ruchomych obiektów. W związku z tym profilerzy nie mogą próbować sprawdzać obiektów podczas wywołania ObjectReferences
. Po wywołaniu wywołania elementu ICorProfilerCallback2::GarbageCollectionFinished odzyskiwanie pamięci jest kompletne i można bezpiecznie przeprowadzić inspekcję.
Wartość null ClassId
wskazuje, że objectId
ma typ, który zwalnia.
Wymagania
Platformy: Zobacz Wymagania systemowe.
Nagłówka: CorProf.idl, CorProf.h
Biblioteki: CorGuids.lib
wersje .NET Framework: dostępne od wersji 2.0