c# - मैं कैसे उपाय करूं "ब्रेकपॉइंट वर्तमान में हिट नहीं होगा। इस दस्तावेज़ के लिए कोई प्रतीक लोड नहीं किया गया है। "चेतावनी?




.net visual-studio (20)

आपको कंपाइलर सेटिंग्स में "डीबग जानकारी जेनरेट" सक्षम करने की आवश्यकता है

एक्सप्रेस संस्करण पर सी # डेस्कटॉप एप्लिकेशन। काम किया तो 5 सेकंड बाद काम नहीं किया।

मैंने निम्नलिखित की कोशिश की।

  • डीबग कॉन्फ़िगरेशन सुनिश्चित करें, ध्वज डीबग करें, और पूर्ण डीबग जानकारी सभी असेंबली पर सेट की गई है।
  • मेरी पूरी मशीन से परियोजना से संबंधित सभी बिन और ओबीजे फ़ोल्डर्स और सभी डीएलएल हटाएं।
  • स्क्रैच से समस्या पैदा करने वाली परियोजनाओं को मनोरंजन करें।
  • रीबूट।

मेरे पास समाधान में दो WinForms परियोजनाएं हैं I उनमें से एक डीबग जानकारी लोड करता है, कोई नहीं करता है। वे दोनों उस असेंबली को संदर्भित करते हैं जिसे मैं प्रोजेक्ट फ़ाइल में बिल्कुल उसी तरह डीबग जानकारी प्राप्त करने का प्रयास कर रहा हूं। कोई विचार?

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


इन सभी चीजों को करने के बजाय बस

बंद करें और फिर से खोलें

समाधान यह मुद्दा ठीक करेगा


उन उत्तरों में से कोई भी मेरी समस्या हल नहीं किया। मैंने इस तथ्य के आधार पर एक और चीज की कोशिश की कि स्टॉप के साथ परियोजना वास्तविक रूप से भारित परियोजना नहीं थी। मैंने पाया कि हंस पासेंट ने लिखा था कि .dll जहां मैं डीबगर और associoated .pdb फ़ाइलों को रोकना चाहता हूं जहां .exe फ़ाइल के पास कॉपी किया गया था। उन फ़ाइलों की पुरानी तारीख है इसलिए मैंने सोचा कि वे रनटाइम में अपडेट नहीं किए गए थे। मैंने मैन्युअल रूप से उन्हें हटा दिया, विजुअल स्टूडियो एक और जोड़ी बना और इस नई जोड़ी को .exe के पास रख दिया। अब ब्रेकपैंक काम करता है!

शायद विजुअल स्टूडियो प्रतिलिपि नहीं कर सकता है और .exe के पास मौजूदा फ़ाइलों (.dll और .pdb) को स्थानांतरित कर सकता है क्योंकि वहां कोई और है। तो अगर मैंने मैन्युअल रूप से हटा दिया तो वीएस .exe के पास नया बना सकता है।

मुझे लगता है कि एक और परिवर्तन (चेक और अन्य - किसी अन्य उत्तरों से) ने कुछ ट्रिगर किया और विजुअल स्टूडियो की प्रतिलिपि बनाई और परियोजना फ़ोल्डर से डीएल और पीडीबी को एक्सई के पास फ़ोल्डर में बदल दिया, ताकि यह एक समाधान हो।

मुझे लगता है कि समस्या का मूल कारण यह है कि विजुअल स्टूडियो रनटाइम में किसी अन्य फ़ाइल का उपयोग करता है, स्टॉप के साथ प्रोजेक्ट की कोई फ़ाइल नहीं।

शायद किसी को मदद करने के लिए यह जवाब!


एएसपी.Net एप्लिकेशन के लिए, साइट के गुणों, एएसपी.नेट टैब की जांच करें। सुनिश्चित करें कि सही ASP.NET संस्करण चुना गया है।


केवल स्पष्ट होने की जांच करने के लिए: सुनिश्चित करें कि आपके पास कॉन्फ़िगरेशन सेट 'डीबग' है और 'रिलीज़' नहीं है। आप 'रिलीज' मोड में स्टार्टअप प्रोजेक्ट को डीबग कर सकते हैं, लेकिन एक संदर्भित क्लास लाइब्रेरी नहीं।


कोशिश करने के लिए बस कुछ आसान - आप इसे पहले से ही कोशिश कर सकते हैं। समाधान एक्सप्लोरर में समाधान पर राइट क्लिक करें, "क्लीन सॉल्यूशन" पर क्लिक करें , यह समाधान से जुड़े सभी संकलित और अस्थायी फ़ाइलों को हटा देता है

समाधान का पुनर्निर्माण करें और फिर से डीबग करने का प्रयास करें।

मुझे समाधान में कई परियोजनाओं को ब्रेकपॉइंट्स के साथ भी परेशानी हुई है - कुछ x86 के रूप में संकलित हैं, कुछ x64 के रूप में।


जांचें कि आपकी बिन / डीबग फ़ोल्डर में आपकी .pbd फ़ाइल गुम है या नहीं। यदि यह आपके प्रोजेक्ट के "गुण" पर जाता है, तो नीचे "बिल्ड करें" और फिर "उन्नत" चयनित होता है। दिखाई देने वाली नई विंडो में "डीबग जानकारी" के तहत "पूर्ण" चुनें। यह मेरा मुद्दा था और इसे मेरे लिए हल किया।


जैसे ही आप ब्रेकपॉइंट पर पहुंचे हैं या Debug > Break All पर पहुंचे हैं, Debug > Windows > Modules उपयोग Debug > Windows > Modules । आप प्रक्रिया में लोड की गई सभी असेंबली की एक सूची देखेंगे। उस व्यक्ति को ढूंढें जिसके लिए आप डीबग जानकारी प्राप्त करना चाहते हैं। राइट-क्लिक करें और सिंबल लोड जानकारी का चयन करें। आपको एक संवाद मिलेगा जो सभी निर्देशिकाओं को सूचीबद्ध करता है जहां यह असेंबली के लिए .pdb फ़ाइल की तलाश में था। वास्तविक .pdb स्थान के विरुद्ध उस सूची को सत्यापित करें। सुनिश्चित करें कि यह पुराना नहीं है।

सामान्य परियोजनाओं में, असेंबली और इसकी .pdb फ़ाइल हमेशा आईडीई द्वारा आपके .exe के समान फ़ोल्डर में कॉपी की जानी चाहिए। आपके प्रोजेक्ट का बिन \ डीबग फ़ोल्डर। सुनिश्चित करें कि आप जीएसी से एक को हटा दें यदि आप इसके साथ खेल रहे हैं।


प्रोजेक्ट गुण (फिर अपनी बिल्ड कॉन्फ़िगरेशन का चयन करें)> टैब बनाएं> उन्नत ...> डीबग जानकारी (ड्रॉपडाउन)

'सभी' या 'pdb-only' पर सेट करें फिर पुनर्निर्माण करें


बस जांचें कि आपका समाधान रिलीज मोड में है या नहीं।


मुझे भी वही समस्या थी जो मैंने x86 (या x64) में पूरे समाधान (जनरेटेड परियोजनाओं सहित) का पुनर्निर्माण किया था।

भले ही मैंने अपनी सभी परियोजनाओं को कॉन्फ़िगरेशन मैनेजर (Build-> ConfigManager) से x86 पर सेट किया है, लेकिन मेरी कुछ परियोजनाएं x86 पर सेट की गई हैं।

तो बस यह सुनिश्चित करने के लिए कि प्रोजेक्ट-> गुण-> डीबग टैब पर राइट क्लिक करें, कॉन्फ़िगरेशन और प्लेटफ़ॉर्म सत्यापित करें।


मेरे मामले में "अनुकूलन कोड" मेरे प्रोजेक्ट गुणों में चेक किया गया था। इसने वीएस को मेरी असेंबली को "मेरा कोड नहीं" के रूप में देखा, और बदले में, इसके लिए प्रतीकों को लोड नहीं किया।

समाधान इसे अनचेक करना था।


मैं संलग्न स्क्रीनशॉट में दिखाए गए अनुसार 'डीबग करने के लिए कोड के प्रकार को स्वचालित रूप से निर्धारित करने' के विकल्प को 'प्रक्रिया से अटैचमेंट' में विकल्प सेट करके त्रुटि को ठीक करने में सक्षम था।

बस नीचे दिए गए चरणों का पालन करें:

  • मेनू बार से डीबग पर जाएं
  • प्रक्रिया में अटैचमेंट पर क्लिक करें
  • विकल्प से अटैचमेंट के पास, चयन बटन पर क्लिक करें
  • चयन कोड प्रकार विंडो दिखाई देगी
  • अब विकल्प का चयन करें स्वचालित रूप से डीबग करने के लिए कोड के प्रकार को निर्धारित करें और ठीक बटन पर क्लिक करें।


मैंने इन सभी की कोशिश की और मेरा ब्रेक-पॉइंट काम नहीं कर सका ...

मैंने इस मुद्दे को ठीक करने के लिए क्या किया था

उस पृष्ठ में जहां मेरा ब्रेक-पॉइंट मार नहीं रहा था, मैंने फ़ोल्डर का चयन किया> एक मौजूदा आइटम जोड़ें और फिर पेज को अपने सेव पथ से चुनें। इसने ब्रेक पॉइंट को काम करना शुरू कर दिया।


मैंने ऊपर वर्णित सब कुछ करने की कोशिश की, लेकिन कुछ भी काम नहीं किया। [स्वच्छ समाधान, और पीडीबी फाइलों के लिए जांच आदि]

यहां तक ​​कि एक ही समाधान को प्रकाशित करने से इस मुद्दे को हल नहीं किया गया।

फिर मैं जो हल करता हूं उसे वापस करने के लिए चला गया (इस जिद्दी दृश्य स्टूडियो को मूर्ख बनाओ)

मैंने जो कुछ किया वह कोड में जानबूझ कर परिवर्तन करना था और समाधान प्रकाशित करना था। तब मैंने परिवर्तन को वापस कर दिया और फिर से प्रकाशित किया।

वोला [पीडीबी फाइलें दुष्ट आत्माओं से छुटकारा पाती हैं] .. एक स्मार्ट रिज़ॉल्यूशन नहीं, लेकिन यह काम किया ..: - |


यह एक अन्य webservice asmx फ़ाइल को मौजूदा webservice में पेस्ट करने के बाद मेरे साथ हुआ, जिसके परिणामस्वरूप हाल ही में जोड़ा गया सेवा डीबग करने का प्रयास करते समय एक ही त्रुटि हुई, डीबग करने में सक्षम होने के लिए मुझे डीबग के बिना शुरू करना पड़ा, फिर प्रक्रिया से जुड़ा हुआ था। यह अजीब है लेकिन यह एकमात्र तरीका है जिसे मैंने डीबग करने में सक्षम पाया।


विकल्प "डिबगिंग प्रारंभ करें, डीबग + विंडोज + मॉड्यूल" माइक्रोसॉफ्ट विजुअल स्टूडियो एक्सप्रेस 2013 संस्करण में मौजूद नहीं है।

टूल्स विकल्प डिबगिंग में "प्रबंधित संगतता मोड का उपयोग करें" को अनचेक करना इसे ठीक करता है।


वेबप्लिकेशंस (आईआईएस एक्सप्रेस) केवल:

  • राइटक्लिक आईआईएस एक्सप्रेस ट्रे और आईआईएस बंद करें।
  • स्वच्छ समाधान


हमें हमारी समस्या का कारण मिला। यह कोड "CodeFile" विशेषता (ASP.NET 2.0 और उससे परे) की बजाय .aspx फ़ाइल के पृष्ठ निर्देश में "CodeBehind" विशेषता का उपयोग कर रहा था। निराशा के दिनों के बाद, एक साधारण खोज और प्रतिस्थापन समस्या हल हो गई।


Debug > Windows > Modules यह देखने के लिए कि कौन से मॉड्यूल लोड किए जा रहे थे, मुझे सही दिशा में डाल दिया।

मेरे मामले में आईआईएस एक्सप्रेस अस्थायी एएसपी.नेट फाइलों से एक अलग डीएलएल लोड करने लग रहा था।

समाधान?

  1. C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs ब्राउज़ करें
  2. इस निर्देशिका में सबकुछ हटाएं!






breakpoints