!obtrace
L’extension !obtrace affiche les données de suivi de référence d’objet pour l’objet spécifié.
!obtrace Object
Paramètres
Objet
Pointeur vers l’objet ou un chemin.
DLL
Kdexts.dll
Informations supplémentaires
Pour plus d’informations sur l’utilitaire Global Flags (GFlags), consultez la documentation WDK (Windows Driver Kit) et Microsoft Windows Internals (Au cœur de Windows) de Mark Russinovich et David Salomon.
Notes
La fonctionnalité de suivi de référence d’objet d’enregistrements Windows enregistre des traces de pile séquentielles chaque fois qu’un compteur de référence d’objet est incrémenté ou décrémenté.
Avant d’utiliser cette extension pour afficher les données de suivi de référence d’objet, vous devez utiliser GFlags pour activer le suivi de référence d’objet au niveau de l’objet spécifié. Vous pouvez activer le suivi des références d’objet en tant que paramètre d’indicateur de noyau (exécution), dans lequel la modification est effective immédiatement, mais disparaît si le système s'arrête ou redémarre ; ou en tant que paramètre de registre, qui nécessite un redémarrage, mais reste effectif jusqu’à ce que vous le modifiiez.
Voici un exemple de sortie de l’extension !obtrace :
kd> !obtrace 0xfa96f700
Object: fa96f700 Image: cmd.exe
Sequence (+/-) Stack
-------- ----- ---------------------------------------------------
2421d +1 nt!ObCreateObject+180
nt!NtCreateEvent+92
nt!KiFastCallEntry+104
nt!ZwCreateEvent+11
win32k!UserThreadCallout+6f
win32k!W32pThreadCallout+38
nt!PsConvertToGuiThread+174
nt!KiBBTUnexpectedRange+c
2421e -1 nt!ObfDereferenceObject+19
nt!NtCreateEvent+d4
nt!KiFastCallEntry+104
nt!ZwCreateEvent+11
win32k!UserThreadCallout+6f
win32k!W32pThreadCallout+38
nt!PsConvertToGuiThread+174
nt!KiBBTUnexpectedRange+c
2421f +1 nt!ObReferenceObjectByHandle+1c3
win32k!xxxCreateThreadInfo+37d
win32k!UserThreadCallout+6f
win32k!W32pThreadCallout+38
nt!PsConvertToGuiThread+174
nt!KiBBTUnexpectedRange+c
24220 +1 nt!ObReferenceObjectByHandle+1c3
win32k!ProtectHandle+22
win32k!xxxCreateThreadInfo+3a0
win32k!UserThreadCallout+6f
win32k!W32pThreadCallout+38
nt!PsConvertToGuiThread+174
nt!KiBBTUnexpectedRange+c
24221 -1 nt!ObfDereferenceObject+19
win32k!xxxCreateThreadInfo+3a0
win32k!UserThreadCallout+6f
win32k!W32pThreadCallout+38
nt!PsConvertToGuiThread+174
nt!KiBBTUnexpectedRange+c
---- ----------------------------------------------------------
References: 3, Dereferences 2
Les indicateurs principaux de l’affichage !obtrace 0xfa96f700 sont répertoriés dans le tableau suivant.
Paramètre | Signification |
---|---|
Séquence |
Représente l’ordre des opérations. |
+/- |
Indique une opération de référencement ou de déréférencement. +1 indique une opération de référencement. -1 indique une opération de déréférencement. +/- n indique plusieurs opérations de référencement/déréférencement. |
Les traces de référence d’objet sur les ordinateurs cibles x64 peuvent être incomplètes, car il n’est pas toujours possible d’acquérir des traces de pile aux niveaux IRQL supérieurs à PASSIVE_LEVEL.
Vous pouvez arrêter l’exécution à tout moment en appuyant sur Ctrl+Pause (dans WinDbg) ou Ctrl+C (en KD).