2011-08-25 10 views
13

कोड को देखने के लिए सबसे अच्छा (सबसे तेज़) तरीका क्या है जो मेरी फ़ाइलों से संकलित संकलक है? मैं ज्यादातर सी ++ का उपयोग कर रहा हूं लेकिन एक समाधान जो .NET भाषाओं के लिए काम करता है, उसका भी स्वागत है।विजुअल स्टूडियो 2010 में सी ++ फ़ंक्शन के लिए संकलित मशीन कोड या बाइट कोड कैसे देखूं?

+1

ब्रेकपॉइंट सेट करें, CTRL + F11 –

उत्तर

23

विजुअल स्टूडियो के भीतर, अपनी परियोजना के लिए प्रॉपर्टी पेज पर जाएं, फिर C/C++ → Output Files → Assembler Output पर जाएं। यह कुछ इस तरह दिखना चाहिए:

property page

नोट इसी संकलक स्विच, /FA के सभी वेरिएंट।

  • /FA: विधानसभा केवल लिस्टिंग
  • /FAcs: विधानसभा, मशीन कोड और स्रोत
  • /FAc: विधानसभा मशीन कोड
  • /FAs के साथ: साथ स्रोत कोड

नीचे विधानसभा " असेंबल आउटपुट "विकल्प में" एएसएम सूची स्थान "विकल्प है। यह /Fa स्विच (नोट पूंजीकरण!) के बराबर है, और यह आउटपुट लिस्टिंग का फ़ाइल पथ सेट करता है।

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

gotodisassembly

यह लाइन पर विधानसभा पर पहुंच जाएंगे आप दायाँ क्लिक किया है एक अलग टैब में पर। सूची इस सदृश होगा:

enter image description here

हाँ मैं जानता हूँ कि, स्क्रीनशॉट दृश्य स्टूडियो 2010 से नहीं हैं, लेकिन कदम और सामान्य उपस्थिति ही हैं। मेरे पास स्क्रीनशॉट बनाने के लिए बस VS2010 तक तुरंत पहुंच नहीं है। :-)

+0

दबाएं यह उत्तर _awesome_ है। हालांकि, मुझे विश्वास है कि जब आप इसे असेंबलर आउटपुट करते हैं, तो मेरा मानना ​​है कि यह द्विआधारी नहीं बनाता है। अगर मुझे यह सही याद है, तो आपको इसे कहीं भी ध्यान रखना चाहिए। –

+0

@MooingDuck: यह एक अलग प्रीप्रोसेसर रन (/ पी) के लिए सच है, लेकिन कम से कम वीसी -2010 में,/एफए वेरिएंट अभी भी बाइनरी उत्पन्न करते हैं। –

7

एक सी ++ प्रोजेक्ट के लिए, असेंबली लिस्टिंग प्राप्त करने के लिए /FA के साथ संकलित करें।

.NET असेंबली के लिए, ildasm है।

1

.NET के लिए आप ildasm उपकरण का उपयोग कर सकते हैं जो आईएल देखने के लिए ढांचे के साथ आता है।