在调试转储文件时,我经常需要检查锁定情况,为此我使用 windbg
扩展命令 !locks
。当一切正常时,它会提供以下输出:
CritSec +54a8a8 at 0054a8a8
WaiterWoken No
LockCount 0
RecursionCount 1
OwningThread 13d8
EntryCount 0
ContentionCount 0
*** Locked
CritSec +b73a8d at 00135e8d
WaiterWoken No
LockCount 0
RecursionCount 1
OwningThread 55f3
EntryCount 0
ContentionCount 0
*** Locked
...
Scanned 662 critical sections
有时候,我会遇到以下错误信息:
Stopped scanning because of problem reading critical section debug info
Scanned 7 critical sections
无论如何,是否有一些信息可以提供?(例如,critical section debug info
在哪里,如何在没有!locks
命令的情况下读取它...)
!cs -s -l -o
,但可能会看到相同的结果,你可能需要使用标志!gflag +ust
启用用户模式堆栈跟踪。 - EdChum