どのスレッドが windbg のイベント ハンドルの所有者であるかを調べるにはどうすればよいですか。
私は走っています
!handle 00003aec f
そして得る
Handle 00003aec
Type Event
Attributes 0
GrantedAccess 0x1f0003:
Delete,ReadControl,WriteDac,WriteOwner,Synch
QueryState,ModifyState
HandleCount 2
PointerCount 4
Name <none>
No object specific information available
名前がないので、スレッドが待機しているスレッドを証明するために所有者を取得する方法がわかりません
[編集] 元のプロセスをユーザーのマシンで再起動する必要があるため、ダンプに対して作業する必要があるため、ライブ セッションをデバッグできません
私がこれまでに見つけた主題に関する最良の議論はこのブログにありますが、残念ながら私たちは異なるロック方法を使用することになり (私は WaitForMultipleObjectsEx を使用し、説明は WaitForSingleObject に関するものです)、彼はライブプロセスにアクセスできるようです
私のスレッドのスタックトレース(何かでブロックされていて、現在の所有者を探している場所)は次のとおりです。
0:045> k9
ChildEBP RetAddr
1130e050 7c90e9ab ntdll!KiFastSystemCallRet
1130e054 7c8094e2 ntdll!ZwWaitForMultipleObjects+0xc
1130e0f0 79ed98fd kernel32!WaitForMultipleObjectsEx+0x12c
1130e158 79ed9889 mscorwks!WaitForMultipleObjectsEx_SO_TOLERANT+0x6f
1130e178 79ed9808 mscorwks!Thread::DoAppropriateAptStateWait+0x3c
1130e1fc 79ed96c4 mscorwks!Thread::DoAppropriateWaitWorker+0x13c
1130e24c 79ed9a62 mscorwks!Thread::DoAppropriateWait+0x40
1130e2a8 79e78944 mscorwks!CLREvent::WaitEx+0xf7
1130e2bc 7a162d84 mscorwks!CLREvent::Wait+0x17
1130e33c 7a02fd94 mscorwks!CRWLock::RWWaitForSingleObject+0x6d
1130e364 79ebd3af mscorwks!CRWLock::StaticAcquireWriterLock+0x12e
1130e410 00f24557 mscorwks!CRWLock::StaticAcquireWriterLockPublic+0xc9