2008-08-26 10 views
56

असल में मैं उपकरण जो स्रोत कोड दृश्य उत्पन्न चाहते हैं की तरह:सी/सी ++ स्रोत कोड विज़ुअलाइज़ेशन?

  • समारोह कॉल ग्राफ
  • निर्भरता ग्राफ
  • ...
+1

क्या आपका मतलब इंटरफेस (जैसे विरासत आरेख) या कार्यान्वयन में निर्भरता (निर्भरता ग्राफ) में निर्भरता है, उदाहरण के लिए फ़ंक्शन ए से बी का किनारा है यदि उसके शरीर में ए कॉल बी है)? – Krystian

+0

आप CppDepend (http://www.cppdepend.com) को आजमा सकते हैं जहां आप फ़ंक्शन कॉल ग्राफ़/निर्भरता ग्राफ उत्पन्न कर सकते हैं और CQLinq.CppDepend का उपयोग कर ग्राफ़ में तत्वों को फ़िल्टर कर सकते हैं ओपन सोर्स योगदानकर्ताओं के लिए निःशुल्क है। –

उत्तर

2

एक डुप्लिकेशंस हो सकता है, लेकिन ollydbg, IDA Pro और this website को कुछ बहुत सेक्सी छवियों के साथ संसाधनों का पूरा समूह देखें।

47

Doxygen इसके लिए वास्तव में उत्कृष्ट है, हालांकि आपको ग्राफ को आकर्षित करने के लिए GraphViz इंस्टॉल करने की आवश्यकता होगी।

एक बार जब आप सबकुछ स्थापित कर लेते हैं, तो ग्राफ को आकर्षित करना वास्तव में आसान होता है। सुनिश्चित करें कि आपने EXTRACT_ALL और CALL_GRAPH को सत्य पर सेट किया है और आपको जाने के लिए अच्छा होना चाहिए।

Doxygen के लिए इस फ़ंक्शन पर पूर्ण प्रलेखन here है।

+1

स्वीट। उपयोग करने के लिए बहुत सरल है। ग्राफ़विज़ आपके सिस्टम पथ को संशोधित करता है, और डॉक्सिजन इसका उपयोग करता है। – bobobobo

+2

+1 मैं सहमत हूं। मौजूदा कोड की खोज करते समय डॉक्सिजन एक बहुत उपयोगी उपकरण है। उस स्रोत को जांचें जो स्रोत कोड उत्पन्न करता है और आप आसानी से अपने कोड-एडिटर को खोलने के बिना अपने कोडबेस के माध्यम से नेविगेट करते हैं ... – neuro

+0

यह भी सुनिश्चित करें कि HAVE_DOT = YES – polypus74

5

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

लेकिन वास्तव में बड़े प्रोजेक्ट कोड बेस पर कुछ चित्र प्राप्त करने के बाद आप महसूस कर सकते हैं कि ऐसे ग्राफ पढ़ने और समझने के बजाय कठिन हैं। जटिलता की दुर्भाग्य से विज़ुअलाइजेशन क्षमताओं बहुत सीमित हैं।

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

+0

+1 अच्छी टिप्पणी। – neuro

9

मैं दृढ़ता से BOUML की अनुशंसा करता हूं। यह एक मुफ्त UML मॉडलिंग आवेदन है, जो है: (, benchmarks की जाँच कभी बनाया सबसे तेज यूएमएल उपकरण)

  • बहुत तेज है,
  • रॉक ठोस सी ++ आयात समर्थन हासिल है,
  • महान एसवीजी निर्यात समर्थन, है जो महत्वपूर्ण है, क्योंकि वेक्टर प्रारूप में बड़े ग्राफ देख रहे हैं, जो उदाहरण में तेजी से स्केल करता है फ़ायरफ़ॉक्स, बहुत सुविधाजनक है (आप जल्दी से "पक्षियों की आंख" दृश्य और कक्षा विवरण दृश्य के बीच स्विच कर सकते हैं),
  • पूर्ण विशेषीकृत, प्रभावशाली ढंग से विकसित किया गया है (development history पर देखें, यह विश्वास करना मुश्किल है कि इतनी तेजी से प्रगति संभव है)।

तो: अपने कोड को BOUML में आयात करें और इसे वहां देखें, या एसवीजी को निर्यात करें और इसे फ़ायरफ़ॉक्स में देखें।

नि: शुल्क संस्करण के लिए:

+0

+1 एक निःशुल्क यूएमएल उपकरण के लिए जो प्रयास करने योग्य हैं। – neuro

+0

4.23.7 ​​के लिए विंडोज इंस्टालर उसी स्रोत फोर्ज पेज पर "फाइल" अनुभाग में डौमल के रूप में पाया जा सकता है। – Zeks

+0

http://launchpad.net/~pasgui/+archive/ppa/ यह लड़का अन्य धागे में सुझाए गए @Zeks के रूप में douml डेबियन/ubuntu के लिए नियमित रूप से बनाता है। – kikeenrique

1

डाउनलोड किया जा सकता वहाँ CDOC कहा जाता है एक पुराने उपकरण है कि हम अभी भी कॉल उत्पन्न करने के लिए इस्तेमाल करते हैं पेड़।

3

यदि आप विजुअल स्टूडियो का उपयोग करते हैं, तो 2010 की अंतिम रिलीज आपको अनुक्रम आरेख और निर्भरता ग्राफ उत्पन्न करने देती है। हालांकि, रिलीज वर्तमान में केवल .NET अनुप्रयोग परियोजनाओं का समर्थन करता है।

टीम को भविष्य में रिलीज में सी ++ का समर्थन करने में बहुत रुचि मिली है, इसलिए आप ट्यूनेड रहना चाहेंगे। इस बीच, आप अपडेट करने के लिए वीएस 2010 आर्किटेक्चरल डिस्कवरी & मॉडलिंग टूल्स फ़ोरम http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads पर पोस्ट कर सकते हैं। मुझे पता है कि उत्पाद टीम उपकरण के बारे में ग्राहक प्रतिक्रिया सुनना पसंद करती है।

इस दौरान, आप निम्न विषयों में नेट कोड से अनुक्रम आरेख और निर्भरता चित्र बनाने के बारे में अधिक सीख सकते हैं:

कैसे करें: का पता लगाएं कोड आर्किटेक्चर एक्सप्लोरर का उपयोग करना: http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx

कैसे करने के लिए: कोड बनाएं से ग्राफ़ दस्तावेज: http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource

कैसे करें: अनुक्रम आरेख के साथ अन्वेषण कोड: http://msdn.microsoft.com/en-us/library/ee317485%28VS.100%29.aspx

आर सी रिहाई की कोशिश करने के लिए और प्रतिक्रिया प्रदान करते हैं ऊपर लिखा उपकरणों के लिए http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=457bab91-5eb2-4b36-b0f4-d6f34683c62a

2

पर इसे डाउनलोड इसके अलावा, आप understand कोशिश कर सकते हैं। लेकिन, यह मुफ़्त नहीं है।

+0

उनके पास एक परीक्षण संस्करण है जो काफी आसान हो सकता है। – karlphillip

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