!obtrace
!obtrace 延伸模組會顯示指定對象的物件參考追蹤數據。
!obtrace Object
參數
物件
對象或路徑的指標。
DLL
Kdexts.dll
其他資訊
如需 Global Flags 公用程式 (GFlags) 的詳細資訊,請參閱 Windows 驅動程式套件 (WDK) 檔,以及 Mark Russinovich 和 David 所羅門的 Windows 內部 Microsoft。
備註
每當對象參考計數器遞增或遞減時,Windows 的物件參考追蹤功能就會記錄循序堆棧追蹤。
使用此延伸模組來顯示物件參考追蹤資料之前,您必須使用 GFlags 來啟用 指定物件的物件參考追蹤 。 您可以啟用對象參考追蹤做為核心旗標(運行時間)設定,其中變更會立即生效,但如果關閉或重新啟動,就會消失;或 作為登錄設定,這需要重新啟動,但在您變更之前仍有效。
以下是 !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
下表列出 !obtrace 0xfa96f700顯示的主要指標。
參數 | 意義 |
---|---|
序列 |
表示作業的順序。 |
+/- |
表示參考或取值作業。 +1 表示參考作業。 -1 表示取值作業。 +/- n 表示多個參考/取值作業。 |
x64 型目標電腦上的對象參考追蹤可能不完整,因為它不一定可以在高於 PASSIVE_LEVEL的 IRQL 層級取得堆疊追蹤。
您可以按 CTRL+BREAK(在 WinDbg 中)或 CTRL+C (在 KD 中)隨時停止執行。