2017-04-20 5 views
5

.net 4.7 के साथ निर्माता अपडेट करने के लिए विंडोज 10 को अपडेट करने के बाद मुझे बहुत सरल कोड शुरू करने पर एक महत्वपूर्ण समस्या है।विंडोज 10 क्रिएटर अपडेट .नेट 4.7 सिस्टम। एक्सेसऑलिओशन अपवाद समस्या

विवरण: प्रक्रिया को एक अनचाहे अपवाद के कारण समाप्त कर दिया गया था। अपवाद जानकारी: System.AccessViolationException

class Program 
{ 
     private int? m_bool; 
     private bool prop {get{ return false;}} 
     void test() 
     { 
      //nothing 
     } 
     private object Test() 
     { 
      if (prop) 
      {      
       try 
       { 
        test(); 
       } 
       catch (Exception) {} 

       m_bool = 1;      
      } 
      return null; 
     } 

     static void Main(string[] args) 
     { 
      new Program().Test(); 
     } 
} 

लगता है वही समस्या https://github.com/dotnet/coreclr/issues/10826

किसी को भी जानता है कि कैसे से बचने के लिए है?

+0

कृपया ध्यान दें - यह दृश्य स्टूडियो के तहत काम करता है और केवल एप्लिकेशन में रिलीज में नहीं चलता है। – Andrew

उत्तर

4

समस्या तब होती है जब एक पहुंच योग्य मूल ब्लॉक पर अनुकूलन चल रहा है। आपके मामले में कंपाइलर get_prop विधि को रेखांकित करता है (जो बिना शर्त रूप से गलत लौटाता है)। इस क्षेत्र को पहुंचने योग्य मानने के लिए जेआईटी कंपाइलर की ओर जाता है। आमतौर पर जेआईटी कंपाइलर ऑप्टिमाइज़ेशन चलाने से पहले पहुंचने योग्य कोड को हटा देता है, लेकिन कोशिश/पकड़ क्षेत्र जोड़ने से जेआईटी इन बुनियादी ब्लॉक को मिटाने का कारण बनता है।

आप, इस मुद्दे आप अनुकूलन अक्षम कर सकते हैं रोकने get_prop को इनलाइन अक्षम या बदलना चाहते हैं होने के लिए get_prop विधि के क्रियान्वयन:

static bool s_alwaysFalse = false; 
    private bool prop {get{ return s_alwaysFalse;}} 

हम इस मुद्दे की रिपोर्ट के एक जोड़े था और है हमारे पास एक फिक्स तैयार है और यह आगामी अपडेट में उपयोगकर्ताओं को प्रदान किया जाएगा।

+0

इस बारे में कोई सलाह है कि हम कैसे हमारी मशीनों पर डाउनलोड होने वाली भयानक बग को रोक सकते हैं। और यह आवश्यक है कि यह कितना अविभाज्य है। –

+0

स्पष्टीकरण के लिए धन्यवाद ब्रायन! हमारे पास बड़ा समाधान है और केवल एक ही जगह है जो विफल हो जाती है। मूल रूप से संपत्ति में कुछ सशर्त संकलन होता है और कुछ मामलों में झूठी वापसी होती है। – Andrew

+0

@ ब्रायन, जब यह समस्या तय की जाएगी, और पैच हमारे लिए कैसे उपलब्ध होगा? – Graviton

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