Firstly, is there a command for getting help and parameters for each sos command in windbg
?
Secondly, I'd like to understand !syncblk
output
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
shows # of monitor held by the synblk
. 1 for write and 2 for read, but what does the rest of column means?
Say I have a C# code
MyClass MyObj;
MyObj = new MyClass();
Now if I do
lock (MyObj)
{
}
Will the syncblk
owner column show "MyClass" ?
Similarly when I run this !SyncBlk
command, what exactly is it showing me? Is it showing me the number of lock()
and Monitor.Enter
and Mutex
() and other locking mechanisms?