!obtrace
Die Erweiterung !obtrace zeigt Objektreferenz-Tracing-Daten für das angegebene Objekt an.
!obtrace Object
Parameter
Objekt
Ein Zeiger auf das Objekt oder einen Pfad.
DLL
Kdexts.dll
Zusätzliche Informationen
Weitere Informationen über das Dienstprogramm Global Flags (GFlags) finden Sie in der Windows Driver Kit (WDK)-Dokumentation und unter Microsoft Windows Internals von Mark Russinovich und David Solomon.
Hinweise
Die Objektreferenz-Tracing-Funktion von Windows zeichnet sequenzielle Stack-Traces auf, wenn ein Objektreferenzzähler erhöht oder erniedrigt wird.
Bevor Sie diese Erweiterung zur Anzeige von Objektreferenz-Tracing-Daten verwenden, müssen Sie GFlags verwenden, um Objektreferenz-Tracing für das angegebene Objekt zu aktivieren. Sie können die Verfolgung von Objektreferenzen als Kernel-Flag-Einstellung (zur Laufzeit) aktivieren, bei der die Änderung sofort wirksam wird, aber verschwindet, wenn Sie herunterfahren oder neu starten; oder als Registrierungseinstellung, die einen Neustart erfordert, aber wirksam bleibt, bis Sie sie ändern.
Hier ist ein Beispiel für die Ausgabe der Erweiterung !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
Die wichtigsten Anzeigen in der Anzeige !obtrace 0xfa96f700 sind in der folgenden Tabelle aufgeführt.
Parameter | Bedeutung |
---|---|
Sequence |
Stellt die Reihenfolge der Vorgänge dar. |
+/- |
Zeigt eine Referenz- oder Dereferenz-Operation an. +1 bedeutet einen Referenzvorgang. -1 bedeutet eine Dereferenzierungsoperation. +/- n bedeutet mehrfache Referenz-/Dereferenzoperationen. |
Die Objektreferenzspuren auf x64-basierten Zielcomputern können unvollständig sein, da es nicht immer möglich ist, Stack Traces auf IRQL-Ebenen höher als PASSIVE_LEVEL zu erfassen.
Sie können die Ausführung jederzeit durch Drücken von CTRL+BREAK (in WinDbg) oder CTRL+C (in KD) stoppen.