ICorProfilerCallback::ObjectReferences, méthode
Avertit le profileur au sujet des objets en mémoire référencés par l’objet spécifié.
Syntaxe
HRESULT ObjectReferences(
[in] ObjectID objectId,
[in] ClassID classId,
[in] ULONG cObjectRefs,
[in, size_is(cObjectRefs)] ObjectID objectRefIds[] );
Paramètres
objectId
[in] ID de l’objet qui fait référence à des objets.
classId
[in] ID de la classe dont l’objet spécifié est une instance.
cObjectRefs
[in] Nombre d’objets référencés par l’objet spécifié (autrement dit, le nombre d’éléments du tableau objectRefIds
).
objectRefIds
[in] Tableau d’ID d’objets référencés par objectId
.
Notes
La méthode ObjectReferences
est appelée pour chaque objet restant dans le tas après la fin d’une garbage collection. Si le profileur retourne une erreur à partir de ce rappel, les services de profilage interrompent l’appel de ce rappel jusqu’à la prochaine garbage collection.
Le rappel ObjectReferences
peut être utilisé conjointement avec le rappel ICorProfilerCallback::RootReferences pour créer un graphique de références d’objet complet pour le runtime. Le Common Language Runtime (CLR) garantit que chaque référence d’objet n’est signalée qu’une seule fois par la méthode ObjectReferences
.
Les ID d’objet retournés par ObjectReferences
ne sont pas valides pendant le rappel lui-même, car la garbage collection peut être en train de déplacer des objets. Les profileurs ne doivent donc pas essayer d’inspecter des objets pendant un appel de ObjectReferences
. Lorsque ICorProfilerCallback2::GarbageCollectionFinished est appelé, la garbage collection est terminée et l’inspection peut être effectuée en toute sécurité.
Un ClassId
null indique que objectId
a un type qui est déchargé.
Spécifications
Plateformes : Consultez Configuration requise.
En-tête : CorProf.idl, CorProf.h
Bibliothèque : CorGuids.lib
Versions de .NET Framework : Disponible depuis la version 2.0