!obtrace
La extensión !obtrace muestra los datos de seguimiento de referencia de objetos para el objeto especificado.
!obtrace Object
Parámetros
Objeto
Un puntero al objeto o una ruta.
Archivo DLL
Kdexts.dll
Información adicional
Para obtener más información sobre la utilidad Global Flags (GFlags), consulte la documentación del Kit de controladores de Windows (WDK) y Microsoft Windows Internals por Mark Russinovich y David Solomon.
Comentarios
La característica de seguimiento de referencia a objetos de Windows registra seguimientos secuenciales de pila cada vez que se incrementa o decrementa un contador de referencia a objetos.
Antes de usar esta extensión para mostrar los datos de seguimiento de referencia a objetos, debe usar GFlags para habilitar el seguimiento de referencia a objetos para el objeto especificado. Puede habilitar el seguimiento de referencia a objetos como una configuración de marca de kernel (tiempo de ejecución), en la que el cambio es efectivo inmediatamente, pero desaparece si se apaga o se reinicia; o como configuración del Registro, que requiere un reinicio, pero sigue siendo efectiva hasta que la cambie.
Este es un ejemplo de la salida de la extensión !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
Los indicadores principales de la visualización !obtrace 0xfa96f700 se enumeran en la siguiente tabla.
Parámetro | Significado |
---|---|
Secuencia |
Representa el orden de las operaciones. |
+/- |
Indica una referencia o una operación de desreferencia. +1 indica una operación de referencia. -1 indica una operación de desreferencia. +/- n indica varias operaciones de referencia o desreferencia. |
Los seguimientos de referencia a objetos en equipos x64 pueden estar incompletas porque no siempre es posible adquirir seguimientos de pila en niveles IRQL superiores a PASSIVE_LEVEL.
Puede detener la ejecución en cualquier momento. Para ello, pulse CTRL+BREAK (en WinDbg) o CTRL+C (en KD).