我正在调试一个程序,我怀疑其中可能存在死锁或其他多线程相关的错误。我按照他人的建议使用WinDBG打开崩溃转储文件,并使用!locks命令获取以下输出:
CritSec MSVCR100D!lclcritsects+48 at 73541e40
WaiterWoken No
LockCount 6
RecursionCount 1
OwningThread 164c
EntryCount 0
ContentionCount 9
*** Locked
*** ERROR: Symbol file could not be found. Defaulted to export symbols for qsqlited4.dll -
CritSec qsqlited4!qt_plugin_instance+a1b21 at 70fc301c
WaiterWoken No
LockCount 0
RecursionCount 1
OwningThread 2344
EntryCount 0
ContentionCount 0
*** Locked
CritSec +73c2380 at 073c2380
WaiterWoken No
LockCount 0
RecursionCount 4
OwningThread 2344
EntryCount 0
ContentionCount 0
*** Locked
CritSec +73bf9e8 at 073bf9e8
WaiterWoken No
LockCount 0
RecursionCount 1
OwningThread 2344
EntryCount 0
ContentionCount 0
*** Locked
Scanned 817 critical sections
我对输出结果感到困惑,能否有人帮忙解释一下?
CRITICAL_SECTION
目前被锁定了 :). 你可以尝试转储一个你知道 没有 被锁定的CRITICAL_SECTION
。我期望输出会有所不同。 - Mark Nunberg