首先,是否有一个命令获得帮助和参数为每个sos命令windbg
?请解释!SyncBlk 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
()以及其他锁定机制的编号?
你能告诉哪一栏显示哪个值吗?有2个同步块列。 – bsobaid
我已经更新了我的答案以澄清。请让我知道,如果它仍然不清楚。 –
谢谢,第1,2和4列是什么意思? WinDbgId用于钻取一个线程?像〜45e!clrstack的东西?有一种方法可以知道给定的同步块行持有/等待某个线程的代码行吗? – bsobaid