【发布时间】:2015-03-04 04:58:54
【问题描述】:
我分析了转储文件以找到锁定的线程,我使用 !cs 命令找到了。
DebugInfo = 0x00639610
Critical section = 0x03e210c8 (+0x3E210C8)
LOCKED
LockCount = 0x1
WaiterWoken = No
OwningThread = 0x000017c8
RecursionCount = 0x1
LockSemaphore = 0x5B0
SpinCount = 0x00000000
这个结果意味着 ThreadID 0x000017c8 获得了临界区。所以我列出了所有线程以使用 ~ 命令找到 threadID 0x000017c8。
0:000> ~
. 0 Id: 2240.1758 Suspend: 0 Teb: 7efdd000 Unfrozen
1 Id: 2240.1d90 Suspend: 0 Teb: 7efda000 Unfrozen
2 Id: 2240.16fc Suspend: 0 Teb: 7efd7000 Unfrozen
3 Id: 2240.1544 Suspend: 0 Teb: 7ef9c000 Unfrozen
4 Id: 2240.2550 Suspend: 0 Teb: 7ef99000 Unfrozen
5 Id: 2240.fd4 Suspend: 0 Teb: 7ef96000 Unfrozen
6 Id: 2240.1b08 Suspend: 0 Teb: 7ef93000 Unfrozen
7 Id: 2240.1958 Suspend: 0 Teb: 7ef90000 Unfrozen
8 Id: 2240.20e8 Suspend: 0 Teb: 7ef8d000 Unfrozen
9 Id: 2240.1bec Suspend: 0 Teb: 7ef8a000 Unfrozen
10 Id: 2240.fb4 Suspend: 0 Teb: 7ef87000 Unfrozen
11 Id: 2240.25c0 Suspend: 0 Teb: 7ef84000 Unfrozen
12 Id: 2240.15b0 Suspend: 0 Teb: 7ef81000 Unfrozen
13 Id: 2240.21a8 Suspend: 0 Teb: 7ef7b000 Unfrozen
14 Id: 2240.1fcc Suspend: 0 Teb: 7ef78000 Unfrozen
但是,没有线程 ID 0x000017c8。这个转储文件发生了什么?如何找到线程 id 0x000017c8?
【问题讨论】:
-
你的线程 17c8 已经获取了临界区,没有释放就终止了。