Во-первых, есть ли команда для получения справки и параметров для каждой команды 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
() и других механизмов блокировки?