debugging - मैं MonoDevelop के साथ MonoDevelop ऐड-इन्स को डिबग कैसे कर सकता हूं?




add-in (2)

सॉफ्ट डिबगर अभी तक सिस्टम का समर्थन नहीं करता। डायग्नोस्टिक्स.डिबगर। ब्रेक (), ताकि काम नहीं करेगा

आपको MonoDevelop के भीतर MonoDevelop को डिबग करने और अपने addin की स्रोत फ़ाइलों पर अपने ब्रेकपॉइंट सेट करने की आवश्यकता है।

विषय यह सब कहते हैं मुझे monodevelop साइट पर या Google के माध्यम से कोई भी जानकारी नहीं मिल रही है

यहां तक ​​कि System.Diagnostics.Debugger.Break() जोड़ने और mono --debug MonoDevelop.exe साथ चलना कुछ भी नहीं लगता है ..


mono --debug में डीबगर के साथ कुछ भी करने की ज़रूरत नहीं है, यह केवल मोनो को डिबग जानकारी को ट्रैक करने के लिए कारण बनता है ताकि वह बैटरस में फाइल / लाइन / कॉल जानकारी दे सके।

System.Diagnostics.Debugger.Break() का व्यवहार आपके मोनो संस्करण पर निर्भर करता है। AFAIK अपने मूल रूप में यह एक कठिन ब्रेकपॉइंट सेट करता है, इसलिए यदि आपका ऐप किसी देशी हार्ड डिबगर में नहीं चल रहा है तो यह केवल क्रैश होगा यदि आपका ऐप मोनो सॉफ़्ट डीबगर के अंदर मोनो 2.11 या बाद के संस्करण (जो अभी तक जारी नहीं किया गया है) के अंदर चल रहा है, तो यह सॉफ्ट डिबगर के लिए सॉफ्ट ब्रेकपॉइंट सेट करेगा और अपेक्षित काम करेगा।

एडिन्स के डिबगिंग को सक्षम करने का बुनियादी तरीका अपने ऐडसिन प्रोजेक्ट में कस्टम निष्पादन कमांड सेट करना है। 'प्रोजेक्ट ऑप्शंस' को खोलें, 'रन' कस्टम कमानों 'अनुभाग में मिला,' एक्जिक्यूट 'के लिए कस्टम कमांड जोड़ें MonoDevelop.exe के निष्पादन योग्य और उसके संबंधित निर्देशिका के लिए कार्य निर्देशिका सेट करें। इसका मतलब यह है कि जब आप अपने प्रोजेक्ट को रन / डिबग करते हैं, तो एमडी वास्तव में आपके प्रोजेक्ट को सीधे चलाने के बजाय निष्पादन योग्य निष्पादित करेगा अगर MonoDevelop.exe आपके addin को लोड करता है, तो आप ब्रेकपॉइंट, स्टेप इत्यादि को सेट करने में सक्षम होंगे।

यहां मुश्किल भाग एमडी अपने एडिन को लोड कर रहा है। ऐसा करने का एक तरीका आपके प्रोजेक्ट आउटपुट को ऐडिन डीएलएल को उन निर्देशिकाओं में शामिल करना होगा, जो एमडी एडिनस के लिए खोज करता है, लेकिन यह विकास समय पर करने के लिए बहुत ही ख़तरनाक बात है एडीआई को लोड करने के लिए एमडी के लिए एक अतिरिक्त निर्देशिका निर्दिष्ट करने के लिए एक बेहतर समाधान है undocumented परिवेश चर MONODEVELOP_DEV_ADDINS का उपयोग करना कस्टम आज्ञाओं के लिए एएनवी vars सेट करने के लिए एमडी में कोई यूआई नहीं है, लेकिन यह आंतरिक रूप से समर्थित है - आपको सीएसपीआरजे फाइल मैन्युअल रूप से संपादित करना होगा।

उस भाग को ढूंढें जो दिखता है:

<CustomCommands>
  <CustomCommands>
    <Command type="Execute"
      command="..\..\..\monodevelop\main\build\bin\MonoDevelop.exe"
      workingdir="..\..\..\monodevelop\main\build\bin" />
  </CustomCommands>
</CustomCommands>

और इसे इसमें बदलें:

<CustomCommands>
  <CustomCommands>
    <Command type="Execute"
      command="..\..\..\monodevelop\main\build\bin\MonoDevelop.exe"
      workingdir="..\..\..\monodevelop\main\build\bin">
      <EnvironmentVariables>
        <Variable name="MONODEVELOP_DEV_ADDINS" value="${TargetDir}" />
      </EnvironmentVariables>
    </Command>
  </CustomCommands>
</CustomCommands>

यदि आप सोच रहे हैं कि क्यों <CustomCommands> तत्व दो-गहरे हैं, तो ज्ञात बग।





monodevelop