Я пытаюсь отладить тупик в своем процессе с помощью команды SOSEX! Dlk Я получаю следующий вывод:
*DEADLOCK DETECTED*
CLR thread 0xac holds the lock on SyncBlock 00000012ac132068 OBJ:00000012830d66a0[System.Object]
and is waiting for the lock on SyncBlock 00000012ae4ba6b8 OBJ:00000012808391f8[System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[CaptureServices.GenericInfrastructure.Controlling.CapManager.MO.CallRecorder.ICallRecorder, Capture Manager]]]
CLR thread 0x9a holds the lock on SyncBlock 00000012ae4ba6b8 OBJ:00000012808391f8[System.Collections.Generic.Dictionary`2[[System.Guid, mscorlib],[CaptureServices.GenericInfrastructure.Controlling.CapManager.MO.CallRecorder.ICallRecorder, Capture Manager]]]
and is waiting for the lock on SyncBlock 00000012ac132068 OBJ:00000012830d66a0[System.Object]
Я хотел бы иметь возможность получить стек вызовов этих потоков, ноЯ не могу найти идентификаторы потоков (0xac, 0x9a) в списках потоков.Я попробовал следующие команды, и вышеупомянутые потоки не перечислены ни в одном из результатов:
- ~ - должен отображать все потоки (управляемые и неуправляемые)
- ~ * e! Clrstack - должен отображать стек вызовов всех потоков
- ~ * e! Dumpstack - выводить все управляемые потоки
есть ли другой способ увидеть стек вызовов потоков, найденных в тупике, который я мог бы пропустить?Я даже пытался преобразовать идентификатор потока в десятичную, но не смог найти соответствующий идентификатор потока.
спасибо