2013-04-03 5 views
10

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

अग्रिम :)

उत्तर

17

दो तरीकों रहे हैं धन्यवाद, दोनों दो कदम

  1. जीसीसी आंतरिक वीसीजी समर्थन

    1. का उपयोग करते हुए अपने कोड (कहना test.c) संकलित सहित वीसीजी डंप के साथ

      gcc -fdump-tree-vcg -g test.c

    2. किसी भी तीसरे पक्ष उपकरण का प्रयोग करें डॉट उत्पादन कुछ स्क्रिप्ट के साथ उन्हें preprocess कच्चे डंप साथ वीसीजी से प्राप्त करने के लिए

      graph-easy test.c.006t.vcg --as_dot

  2. संकलित और फिर डॉट फ़ाइलें (this useful article में) की तरह

  3. के लिए फार्म

दोनों विधियों के अपने स्वयं के अच्छे और बुरे पक्ष होते हैं - पहले आप वास्तव में अनुवाद से पहले एएसटी का केवल एक डंप प्राप्त कर सकते हैं, bu टी यह आसान है। दूसरे के साथ आप किसी कच्चे डंप को डॉट-फॉर्मेट में परिवर्तित कर सकते हैं, लेकिन आपको स्क्रिप्ट का समर्थन करना चाहिए, जो ओवरहेड है।

क्या पसंद करना है - आपकी अपनी पसंद पर है।


यूपीडी: समय बदल रहे हैं। जीसीसी 4.8.2 के लिए ब्रांड नया विकल्प तुरंत डॉट फाइलें उत्पन्न करना संभव बनाता है। बस की आपूर्ति:

gcc test.c -fdump-tree-all-graph 

और आप पहले से ही स्वरूपित का एक बहुत मिल जाएगा आप फ़ाइलों को डॉट के लिए:

test.c.008t.lower.dot 
test.c.012t.cfg.dot 
test.c.016t.ssa.dot 
... etc ... 

कृपया इस विकल्प के साथ जीसीसी के नए संस्करण का उपयोग सुनिश्चित करें।

+0

इससे मदद मिली :) धन्यवाद बहुत – asdrubalivan

+2

कृपया अपना उत्तर अपडेट करें या जांचें: जीसीसी 4.8.2 कहता है 'सीसी 1: त्रुटि: अपरिचित कमांड लाइन विकल्प' -फडम्प-पेड़-वीसीजी '। – Ali

+0

नोटिस, अद्यतन उत्तर के लिए धन्यवाद। जीसीसी के नए संस्करण चीजों को बहुत आसान बनाते हैं। –

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