!obtrace
L'estensione !obtrace visualizza i dati di traccia dei riferimenti agli oggetti per l'oggetto specificato.
!obtrace Object
Parametri
Oggetto
Puntatore all'oggetto o a un percorso.
DLL
Kdexts.dll
Informazioni aggiuntive
Per altre informazioni sull'utilità Global Flags (GFlags), vedere la documentazione di Windows Driver Kit (WDK) e microsoft Windows Internals di Mark Russinovich e David Solomon.
Osservazioni:
La funzionalità di traccia dei riferimenti agli oggetti di Windows registra tracce dello stack sequenziale ogni volta che un contatore di riferimento oggetto viene incrementato o decrementato.
Prima di utilizzare questa estensione per visualizzare i dati di traccia dei riferimenti agli oggetti, è necessario utilizzare GFlags per abilitare la traccia dei riferimenti agli oggetti per l'oggetto specificato. È possibile abilitare la traccia dei riferimenti agli oggetti come impostazione del flag del kernel (runtime), in cui la modifica è effettiva immediatamente, ma scompare se si arresta o si riavvia; o come impostazione del Registro di sistema, che richiede un riavvio, ma rimane efficace fino a quando non viene modificata.
Di seguito è riportato un esempio dell'output dell'estensione !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
Gli indicatori principali nella visualizzazione !obtrace 0xfa96f700 sono elencati nella tabella seguente.
Parametro | Significato |
---|---|
Sequenza |
Rappresenta l'ordine delle operazioni. |
+/- |
Indica un riferimento o un'operazione di dereferenziazione. +1 indica un'operazione di riferimento. -1 indica un'operazione di dereferenziazione. +/- n indica più operazioni di riferimento/dereferenziazione. |
Le tracce di riferimento agli oggetti nei computer di destinazione basati su x64 potrebbero essere incomplete perché non è sempre possibile acquisire analisi dello stack a livelli IRQL superiori a PASSIVE_LEVEL.
È possibile arrestare l'esecuzione in qualsiasi momento premendo CTRL+INTERR (in WinDbg) o CTRL+C (in KD).