Thứ nhất, có lệnh nào để nhận trợ giúp và tham số cho mỗi lệnh sos trong windbg
không?Hãy giải thích! SyncBlk lệnh windbg
Thứ hai, tôi muốn hiểu !syncblk
đầu ra
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
lãm # của màn hình được tổ chức bởi các synblk
. 1 để viết và 2 để đọc, nhưng phần còn lại của cột nghĩa là gì?
Nói rằng tôi có một mã C#
MyClass MyObj;
MyObj = new MyClass();
Bây giờ nếu tôi làm
lock (MyObj)
{
}
Will cột chương syncblk
chủ sở hữu "MyClass"? Tương tự như vậy khi tôi chạy lệnh !SyncBlk
này, chính xác nó cho tôi thấy điều gì? Có phải nó cho tôi biết số lượng lock()
và Monitor.Enter
và Mutex
() và các cơ chế khóa khác không?
Bạn có thể vui lòng cho biết cột nào hiển thị giá trị nào không? có 2 cột syncblock. – bsobaid
Tôi đã cập nhật câu trả lời của mình để làm rõ. Xin vui lòng cho tôi biết nếu nó vẫn không rõ ràng. –
Cảm ơn và cột 1,2 và 4 nghĩa là gì? WinDbgId được sử dụng để khoan xuống một sợi? một cái gì đó như ~ 45e! clrstack? Có cách nào để biết dòng mã nơi một dòng syncblock nhất định đang nắm giữ/chờ đợi cho một chủ đề? – bsobaid