2010-02-04 9 views
8

मैं एसओएस के सिंकब्लैक कमांड द्वारा उत्पन्न आउटपुट का विवरण देख रहा हूं।WinDbg/SOS: स्पष्टीकरण! सिंकब्लॉक आउटपुट

विशेष रूप से मुझे कॉलम "मॉनिटरहेल्ड" पर कोई उपयोगी स्पष्टीकरण नहीं मिला। यह कॉलम क्रैश डंप की श्रृंखला में उच्च मान दिखाता है।

उदाहरण:

0:000> !SyncBlk 
Index   SyncBlock MonitorHeld Recursion Owning Thread Info   SyncBlock Owner 
    44 0000000005a5c228   1   1 000000000e7a6740 2304 273 000000019f858cd0 System.Object 
    48 000000000579bae8   1   1 000000000e7a72e0 2370 275 000000015f999900 System.Object 
    52 000000000579b9c8   1   1 0000000011bbd3b0 1e98 295 00000000ff89fe08 System.Object 
    54 000000000579b938   1   1 000000000e7a38c0 1be4 249 000000013f8aa888 System.Object 
    108 0000000005a5bfe8   1   1 000000000e79f300 224c 242 00000000ff8a5828 System.Object 
    110 0000000005a5c078   1   1 000000000e79ca50 2290 262 000000015f9a8020 System.Object 
    112 0000000005a5c108   1   1 0000000011bb70e0 1d38 236 000000015f99e408 System.Object 
    114 000000000579b620   1   1 0000000011bb93c0 1884 304 00000001bf974a90 System.Object 
    124 0000000005a44d48   1   1 000000000e7a6170 2300 272 000000019f853fe8 System.Object 
    146 0000000005a44688   99   1 000000000588cbf0 13e0 38 000000017f71c4f8 System.Object 
    155 0000000005a44f88   1   1 0000000011bba530 2274 301 000000019f82f120 System.Object 
    157 0000000005a45018   1   1 0000000011bbf0c0 2034 290 000000015f952980 System.Object 

किसी स्तंभ "MonitorHeld" में "99" की व्याख्या कर सकते हैं?

क्या कोई इस आदेश के पूर्ण संदर्भ दस्तावेज का लिंक है?

धन्यवाद, एलेक्स

उत्तर

17

MonitorHeld कितने पर नज़र रखता है कि विशिष्ट SyncBlk द्वारा आयोजित कर रहे हैं को दर्शाता है।

हर बार जब आप लॉक पर विवाद करते हैं, तो आपके पास 1 मालिक सिंकब्लैक होगा। लॉक पर प्रत्येक वेटर 2.

आपके 99 का मतलब है कि आपके पास लॉक का स्वामित्व वाला एक ऑब्जेक्ट है, और 49 ऑब्जेक्ट लॉक पर प्रतीक्षा कर रहे हैं।

!syncblk की सबसे अच्छी चर्चा और विस्तृत स्पष्टीकरण मैंने पाया है this one by Tess Ferrandez

3

रीड का उल्लेख करने के अलावा, आप SOSEX.dll एक्सटेंशन का उपयोग कर सकते हैं! Dlk कमांड भी deadlocks की जांच के लिए।

+0

बहुत ही रोचक इस एक्सटेंशन के बारे में नहीं पता था! – Alex

+0

! Dlk बहुत उपयोगी है, लेकिन यह सभी deadlocks नहीं मिल रहा है। –

+0

लगता है कि .NET 4 के लिए सोसेक्स पुराना है, psscor4 एकमात्र विकल्प है जिसे मैंने पाया है – IgorK

संबंधित मुद्दे