首先,是否有一個命令獲得幫助和參數爲每個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