Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Расширение !locks в Kdextx86.dll и Kdexts.dll отображает сведения о блокировках ERESOURCE ядра.
Эта команда расширения не должна путаться с командой расширения !ntsdexts.locks .
!locks [Options] [Address]
Параметры
Параметры задает объем отображаемых сведений. Можно использовать любое сочетание следующих параметров:
-v
Отображает подробные сведения о каждой блокировке.
-p
Отображение всех доступных сведений о блокировках, включая статистику производительности.
-d
Отображение сведений обо всех блокировках. В противном случае отображаются только блокировки с конфликтом.)
Адрес
Указывает шестнадцатеричный адрес отображаемой блокировки ERESOURCE. Если адрес равен 0 или опущен, будут отображаться сведения обо всех блокировках ERESOURCE в системе.
DLL-библиотеки
Kdexts.dll
Замечания
Расширение !locks отображает все блокировки, удерживаемые на ресурсах по потокам. Блокировка может быть общей или эксклюзивной, что означает, что другие потоки не могут получить доступ к этому ресурсу. Эта информация полезна при возникновении взаимоблокировки в системе. Взаимоблокировка вызвана одним неисполнимым потоком, включающим монопольную блокировку ресурса, которому требуется выполнение потока.
Обычно можно определить взаимоблокировку в Microsoft Windows 2000, найдя один неисполняющий поток, содержащий монопольную блокировку ресурса, необходимого для выполнения потока. Большинство блокировок являются общими.
Ниже приведен пример базовых выходных данных !locks :
kd> !locks
**** DUMP OF ALL RESOURCE OBJECTS ****
KD: Scanning for held locks......
Resource @ 0x80e97620 Shared 4 owning threads
Threads: ff688da0-01<*> ff687da0-01<*> ff686da0-01<*> ff685da0-01<*>
KD: Scanning for held locks.......................................................
Resource @ 0x80e23f38 Shared 1 owning threads
Threads: 80ed0023-01<*> *** Actual Thread 80ed0020
KD: Scanning for held locks.
Resource @ 0x80d8b0b0 Shared 1 owning threads
Threads: 80ed0023-01<*> *** Actual Thread 80ed0020
2263 total locks, 3 locks currently held
Обратите внимание, что за адресом для каждого потока следует число потоков (например, "-01"). Если за потоком следует "<*>", этот поток является одним из владельцев блокировки. В некоторых случаях начальный адрес потока содержит смещение. В этом случае отображается фактический адрес потока.
Если вы хотите найти дополнительные сведения об одном из этих объектов ресурсов, используйте адрес, следующий за ресурсом @, в качестве аргумента для будущих команд. Для изучения второго ресурса, показанного в предыдущем примере, можно использовать dt ERESOURCE 80d8b0b0 или !thread 80ed0020. Или вы можете использовать расширение !locks еще раз с параметром -v :
kd> !locks -v 80d8b0b0
Resource @ 0x80d8b0b0 Shared 1 owning threads
Threads: 80ed0023-01<*> *** Actual Thread 80ed0020
THREAD 80ed0020 Cid 4.2c Teb: 00000000 Win32Thread: 00000000 WAIT: (WrQueue) KernelMode Non-Alertable
8055e100 Unknown
Not impersonating
GetUlongFromAddress: unable to read from 00000000
Owning Process 80ed5238
WaitTime (ticks) 44294977
Context Switch Count 147830
UserTime 0:00:00.0000
KernelTime 0:00:02.0143
Start Address nt!ExpWorkerThread (0x80506aa2)
Stack Init fafa4000 Current fafa3d18 Base fafa4000 Limit fafa1000 Call 0
Priority 13 BasePriority 13 PriorityDecrement 0
ChildEBP RetAddr
fafa3d30 804fe997 nt!KiSwapContext+0x25 (FPO: [EBP 0xfafa3d48] [0,0,4]) [D:\NT\base\ntos\ke\i386\ctxswap.asm @ 139]
fafa3d48 80506a17 nt!KiSwapThread+0x85 (FPO: [Non-Fpo]) (CONV: fastcall) [d:\nt\base\ntos\ke\thredsup.c @ 1960]
fafa3d78 80506b36 nt!KeRemoveQueue+0x24c (FPO: [Non-Fpo]) (CONV: stdcall) [d:\nt\base\ntos\ke\queueobj.c @ 542]
fafa3dac 805ad8bb nt!ExpWorkerThread+0xc6 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\nt\base\ntos\ex\worker.c @ 1130]
fafa3ddc 8050ec72 nt!PspSystemThreadStartup+0x2e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\nt\base\ntos\ps\create.c @ 2164]
00000000 00000000 nt!KiThreadStartup+0x16 [D:\NT\base\ntos\ke\i386\threadbg.asm @ 81]
1 total locks, 1 locks currently held