Windows WinDBG !locks 命令(查看死锁)

Kdextx86.dll 和 Kdexts.dll 中的!locks扩展可以显示有关内核 ERESOURCE 锁的信息。

此扩展命令不应与!ntsdexts.locks扩展命令混淆。

!locks [Options] [Address]

WinDBG !locks 示例

检查windows中使用的锁

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.

WinDBG !locks 扩展参数

Options

-v
显示每个锁的详细信息。

-p
显示有关锁的所有可用信息,包括性能统计信息。

-d
显示所有锁的信息。否则,只显示有争用的锁。)

Address

指定要显示的 ERESOURCE 锁的十六进制地址。如果Address为 0 或者省略,将显示系统中所有 ERESOURCE 锁的信息。

更多: zhilu jiaocheng

说明

locks命令 显示由线程资源持有的所有锁定。锁可以是共享的或者独占的,这意味着没有其他线程可以访问该资源。当系统发生死锁时,此信息很有用。死锁是由一个非执行线程在执行线程需要的资源上持有排他锁引起的。

日期:2020-09-17 00:15:31 来源:oir作者:oir