2011-03-13 16 views
9

में एक साथ इंटरमीडिएट भाषा (आईएल) और सी # के माध्यम से डीबग करें, मैं विजुअल स्टूडियो के लिए एक एक्सटेंशन की तलाश में हूं जहां डीबग मोड में सी # के बगल में इंटरमीडिएट भाषा के माध्यम से एकल कदम संभव है।विजुअल स्टूडियो

मैं प्रबंधित और अप्रबंधित कोड डीबग करने के लिए एक समाधान की तलाश नहीं कर रहा हूं।

+0

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

+0

+1। –

उत्तर

6

आपका उद्देश्य क्या है? क्या आपका आईएल # कंपाइलर द्वारा उत्पन्न होता है या गतिशील रूप से रन टाइम पर उत्पादित होता है? यदि पूर्व में, आप ilasm के माध्यम से अपनी बाइनरी को फिर से संकलित करने की एक चाल का उपयोग कर सकते हैं।

  1. सामान्य रूप से सी # कोड संकलित करें। इससे कोई फर्क नहीं पड़ता कि यह अनुकूलित है या नहीं, लेकिन आपको पूर्ण पीडीबी प्रतीकों का उत्पादन करने के लिए संकलन विकल्प निर्दिष्ट करना होगा।
  2. अपनी बाइनरी को .il फ़ाइल में कनवर्ट करने के लिए ildasm का उपयोग करें। यह मेनू में विकल्प डंप है।
  3. एक नया बाइनरी पाने के लिए .il फ़ाइल (और एक नया प्रतीक) .il

    ilasm फिर से संकलन [/ exe |/dll]/डिबग

  4. अब जब कि विशिष्ट विधानसभा आप डिबगिंग सी # कोड के बजाय आईएल कोड देखेंगे। तुम भी मूल सी # फ़ाइल से एक मेल खाती पंक्तियाँ देखेंगे अगर आप कदम 2.

गतिशील रूप से उत्पन्न आईएल के मामले के लिए में उपयुक्त विकल्प का चयन, मैं बस WinDbg with SOS extension का प्रयोग करेंगे। यह आईएल को डंप कर सकता है और इसके माध्यम से कदम उठा सकता है, लेकिन इसका उपयोग करने में थोड़ा सा लगता है।

+0

क्या आप विकल्प 2 पर अधिक विशिष्ट हो सकते हैं। आपका क्या मतलब है "उचित विकल्प का चयन करें"? – RayOldProf

0

मुझे नहीं लगता कि बाहरी डिस्सेबलर यहां आवश्यक है। जब आप वीएस 2010 (हालांकि एक्सप्रेस नहीं) में डिबगिंग कर रहे हैं तो आप कोड विंडो पर राइट-क्लिक कर सकते हैं और आईएल कोड के माध्यम से कदम उठाने के लिए "डिस्सेप्लेस पर जाएं" का चयन कर सकते हैं। क्या वह हो सकता है जो आप खोज रहे हैं? और पढ़ें here

+8

यह आईएल नहीं है। यह जिटेड कोड का असेंबली संस्करण है। –

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