2015-07-29 12 views
9

प्रोसेस एक्सप्लोरर का उपयोग करते समय एक उत्पादन आईआईएस चल वातावरण में एक ASP.NET MVC आवेदन विश्लेषण करने के लिए, मैं C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll से इस CopyPDBs समारोह के लिए कॉल का एक बहुत ध्यान दिया है:यह CopyPDBs फ़ंक्शन (clr.dll से) क्या कर रहा है?

Process Explorer CopyPDBs

वे सब के सब कर रहे हैं ठीक उसी स्टैक ट्रेस: ​​

ntdll.dll!ZwWaitForSingleObject+0xa 
KERNELBASE.dll!WaitForSingleObjectEx+0x98 
clr.dll!GetMetaDataInternalInterface+0x3064a 
clr.dll!GetMetaDataInternalInterface+0x30732 
clr.dll!GetMetaDataInternalInterface+0x306e5 
clr.dll!CopyPDBs+0x44a2 
KERNEL32.DLL!BaseThreadInitThunk+0x22 
ntdll.dll!RtlUserThreadStart+0x34 

मेरा प्रश्न है: clr.dll से इस CopyPDBs समारोह वास्तव में क्या कर रहा है?

मैंने बहुत कुछ खोजा है लेकिन अभी भी इस फ़ंक्शन का कोई अपवाद और/या दस्तावेज़ीकरण नहीं मिल रहा है।

ध्यान दें: यह सवाल किसी भी तरह मेरा एक पिछले प्रश्न, ServerFault में पूछा से संबंधित है: https://serverfault.com/questions/684554/high-cpu-usage-of-iis-process-w3wp-exe-because-of-many-slow-clr-dllcopypdbs

उत्तर

13

यह कुछ भी नहीं कर रही है। प्रक्रिया एक्सप्लोरर को clr.dll के लिए पीडीबी फ़ाइल तक पहुंच नहीं है, इसलिए यह कोड के बारे में पर्याप्त नहीं जानता है। जब आप ज्ञात प्रतीक से निर्देश ऑफ़सेट देखते हैं तो हमेशा बहुत स्पष्ट, +0x44a2 कॉपीपीडीबी() फ़ंक्शन से बहुत लंबा है। Clr.dll से आप जो भी प्रतीक देखते हैं वे जंक हैं। Ntdll.dll के प्रतीक अच्छे हैं, छोटे ऑफसेट को नोट करें।

एक पीडीबी फ़ाइल के बिना जो एक डीएलएल में आंतरिक कार्यों के प्रतीक प्रदान करता है, एक डीबगर केवल निर्यात किए गए कार्यों पर भरोसा कर सकता है। Clr.dll उनमें से कई नहीं है।

प्रोसेस एक्सप्लोरर दिखाने में बेहतर स्टैक निशान this blog post का विषय है।

Windbg एकमात्र तरीका नहीं है, आप भी दृश्य स्टूडियो के साथ यह कर सकते हैं:

  1. उपकरण> विकल्प> डिबगिंग> प्रतीक। "माइक्रोसॉफ्ट सिंबल सर्वर" चेकबॉक्स पर निशान लगाएं और कैश निर्देशिका का चयन करें।
  2. प्रोजेक्ट> गुण> डीबग> "मूल कोड डिबगिंग सक्षम करें" विकल्प पर निशान लगाएं।
  3. प्रेस F5, आप प्रतीकों को डाउनलोड करने वाले डीबगर देखेंगे। थोड़ी देर लेता है, यह सिर्फ एक बार होता है।
  4. विकल्प एक्सप्लोरर को विकल्प> कॉन्फ़िगर करें सिग्नल के साथ चुने गए कैश निर्देशिका के बारे में बताएं।
+1

एक और लेख संबंधित: http://www.hanselman.com/blog/SetUpYourSystemToUseMicrosoftsPublicSymbolServer.aspx –

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