Пожалуйста, объясните !SyncBlk команду windbg

Во-первых, есть ли команда для получения справки и параметров для каждой команды sos в windbg?

Во-вторых, я хотел бы понять !syncblkвывод

Index SyncBlock MonitorHeld Recursion Owning Thread Info  SyncBlock Owner
  201 05b9493c          979         1 05bc1040   bcc  45   022f3490 System.Collections.ArrayList
 2875 05b4c914            1         1 17b99e10  1af8 290   024862d8 MyClass
 2945 05b4b66c            1         1 17d1a290  12c0 752   02482940 MyClass

MonitorHeldпоказывает количество мониторов, удерживаемых synblk. 1 для записи и 2 для чтения, но что означает остальная часть столбца?

Скажем, у меня есть код C#

MyClass MyObj;
MyObj = new MyClass();

Теперь, если я это сделаю

lock (MyObj)
{
}

Будет ли в столбце владельца syncblkотображаться "MyClass" ? Точно так же, когда я запускаю эту команду !SyncBlk, что именно она мне показывает? Показывает ли он мне количество lock() и Monitor.Enter и Mutex () и других механизмов блокировки?

5
задан Brian Rasmussen 8 June 2012 в 16:04
поделиться