मैं मुख्य रूप से एक सी और सी ++ प्रोग्रामर हूं और मुझे अक्सर बहुत बड़े कोड बेस (जीसीसी, लिनक्स कर्नेल) की संरचना को तुरंत समझने की आवश्यकता होती है। मुझे आश्चर्य है कि इस संबंध में मदद करने के लिए कोई उपकरण हैं या नहीं। मुझे विशेष रूप से कॉल ग्राफ़, प्रोजेक्ट में डेटा संरचना संदर्भों में दिलचस्पी है, इसमें निर्भरता ग्राफ, त्वरित प्रतीक स्थान इत्यादि शामिल हैं। मुझे सीटीएजी और सीएससीओपी के बारे में पता है, लेकिन मैं कॉल ग्राफ जैसे अधिक विज़ुअलाइजेशन के साथ कुछ ढूंढ रहा हूं जो जल्दी से परिभाषा को पहचानने की अनुमति देता है एक फ़ंक्शन के, किसी विशेष कॉल पर आलेख को रूट करें, इसे परिवर्तित करें (यानी किसी दिए गए फ़ंक्शन पर सभी कॉल ढूंढना), आदिस्रोत कोड ब्राउज़िंग, समझ और पढ़ने के उपकरण
उत्तर
कृपया SourceInsight का प्रयास करें और उपयोग करें। यह ब्राउज़िंग कोड और इसे समझने में काफी मददगार है। यह आपके द्वारा अनुरोधित अधिकांश सुविधाएं प्रदान करता है।
यदि आप कॉल ग्राफ़ बनाना चाहते हैं, तो आप जीसीसी के -finstrument-functions
के साथ अपना खुद का रोल कर सकते हैं।
मूल रूप से, जब आप एक प्रोग्राम है जो विकल्प के साथ सक्षम संकलन, जीसीसी निम्नलिखित कार्य जब भी लक्ष्य कार्यक्रम में प्रवेश करती है या एक समारोह बाहर निकालता है कॉल:
void __cyg_profile_func_enter (void *this_fn,
void *call_site);
void __cyg_profile_func_exit (void *this_fn,
void *call_site);
क्या आप इन कार्यों को परिभाषित है, और लिखने की ज़रूरत कॉल ग्राफ़ का उत्पादन करने के लिए अपने तर्क में।
This extremely thorough tutorial बताता है कि आप -finstrument-functions
और GraphViz का उपयोग करके कॉल ग्राफ़ कैसे बना सकते हैं। शामिल सभी उपकरण एफओएसएस और मुफ्त हैं।
:
- रेखांकन Graphviz पैदा करता है एक IDE का हिस्सा स्टैंड-अलोन, और नहीं कर रहे हैं।
- मुझे वास्तव में यकीन नहीं है कि लिनक्स (कर्नेल) के कॉल-ग्राफ़ का उत्पादन इस प्रकार संभव है।
आप सीएफएलओ को आजमा सकते हैं। यह आपको अंदर के कार्यों की कॉल का एक ग्राफ प्रदान करता है। हालांकि यह बहुत लचीला नहीं है।
- 1. कोड समझ, रिवर्स इंजीनियरिंग, सर्वोत्तम अवधारणाएं और उपकरण। जावा
- 2. कोड ब्राउज़िंग, रीफैक्टरिंग, इमाक्स
- 3. अपरिचित कोड की समझ में सुधार करने के लिए उपकरण और तकनीकें?
- 4. Emacs के अंदर मैं सबसे अच्छा स्रोत कोड ब्राउज़िंग कैसे कर सकता हूं?
- 5. एकल स्रोत प्रलेखन उपकरण
- 6. पठन कोड - सहायक विज़ुअलाइज़र और ब्राउज़र उपकरण
- 7. स्टेटिक कोड विश्लेषण उपकरण
- 8. सी # कोड न्यूनीकरण उपकरण और तकनीक
- 9. स्रोत स्रोत जैसे फ्री स्रोत कोड ब्राउज़र और विंडोज
- 10. ग्रहण के स्रोत कोड
- 11. क्रोमियम के स्रोत कोड
- 12. मुक्त स्रोत मेटाडाटा प्रबंधन उपकरण
- 13. जेएसपी स्रोत कोड
- 14. "अलग भाषा" स्रोत कोड
- 15. स्रोत कोड
- 16. स्रोत कोड
- 17. स्रोत कोड
- 18. ऑफ़लाइन ब्राउज़िंग के लिए वेबव्यू सामग्री सहेजें?
- 19. स्रोत कोड
- 20. सी स्रोत कोड
- 21. क्या स्रोत नियंत्रण के लिए कोई विलय उपकरण है जो कोड को समझता है?
- 22. सी ++ (वीसी ++) के लिए स्रोत कोड ब्यूटीफायर?
- 23. ग्रहण: स्रोत कोड "अनुलग्नक"
- 24. सी ++ कोड विश्लेषण उपकरण
- 25. सी/सी ++ स्रोत कोड विज़ुअलाइज़ेशन?
- 26. एक्सएसडी उपकरण सी # कोड
- 27. वितरित स्रोत कोड नियंत्रण
- 28. उपकरण सी कोड
- 29. जावा कोड विश्लेषण उपकरण
- 30. .NET कोड प्रोफाइलिंग उपकरण
आरटीसीएम - कंपाइलर मैनुअल पढ़ें। अधिकांश कंपाइलर जो कुछ आप चाहते हैं वह करते हैं और मैं उम्मीद करता हूं कि आपके द्वारा उपयोग किए जाने वाले कंपाइलर में कोई अपवाद नहीं है। –