У меня есть заблокированный процесс .NET Core, работающий в Linux.Я подключил lldb и вижу, что на Monitor.ReliableEnter
застряли сотни потоков, и все они, похоже, пытаются заблокировать один и тот же объект, но я не могу понять, какой поток его удерживает.
Это тривиально в Windows с windbg с помощью команды !SyncBlk
, но, насколько я могу судить, в Linux нет эквивалента.Блок синхронизации объекта содержит поток, в котором удерживается блокировка, и я могу найти индекс блока синхронизации для блокируемого объекта, но я не знаю, где находится таблица блоков синхронизации в памяти.
Какя могу выяснить, какой поток удерживает блокировку этого объекта?