Поделиться через


!obtrace

Расширение !obtrace отображает данные трассировки ссылок на объекты для указанного объекта.

!obtrace Object

Параметры

Объект
Указатель на объект или путь.

DLL-библиотеки

Kdexts.dll

Дополнительная информация

Дополнительные сведения о программе Global Flags (GFlags) см. в документации по комплекту драйверов Windows (WDK) и внутренних компонентах Microsoft Windows Марком Руссиновичем и Дэвидом Соломоном.

Замечания

Функция трассировки ссылок на объект для записей 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 могут быть неполными, так как не всегда невозможно получить трассировки стека на уровнях IRQL выше, чем PASSIVE_LEVEL.

Вы можете остановить выполнение в любое время, нажав клавиши CTRL+BREAK (в WinDbg) или CTRL+C (в KD).