我正在使用WinDbg工具分析转储文件。没有得到导致这里线程挂起的原因。我只能看到它等待的东西。
elementdetails.Id
答案 0 :(得分:1)
你可能遇到了僵局,如果是这样,你应该能够确认如下
01 002cd7d8 75f0179c 00002cc0 00000000 00000000 ntdll!NtWaitForSingleObject + 0xc
0x00002cc0是传递给NtWaitForSingleObject的arg,!locks -v命令会显示锁定的对象,你正在寻找一个像这样开始的
CritSec [lockOffset] at 00002cc0
[lockOffset]可以是数字,也可以是符号地址,如ntdll!RtlCiritcalSectionLock + 0。
在该行下会有几个值,你需要找到“拥有线程”,这是阻止你在原始问题中显示的那个的线程
然后你需要跟随线程,所以看看它在做什么。在经典的死锁中,它将等待您显示的线程拥有的同步对象。但死锁循环可能是几个线程深。你需要关注这些主题。
答案 1 :(得分:0)
您希望使用!locks命令列出所有线程所持有的锁。