2010-12-27 8 views
5

मैं एक बड़े कोड बेस पर काम कर रहा हूं जिसमें #ifdef जादू का थोड़ा सा हिस्सा है। मैं एक फाइल को देख रहा हूं और यह निर्धारित करने की कोशिश कर रहा हूं कि एक प्रकार कहां परिभाषित किया गया है। दुर्भाग्यवश, इसमें कई फाइलें शामिल हैं, जिनमें कई फाइलें शामिल हैं, जिनमें कई फाइलें शामिल हैं, जिनमें से कुछ मैक्रोज़ को परिभाषित करते हैं जो आप परिभाषित कर सकते हैं कि कौन सी परिभाषाओं का उपयोग कर सकते हैं। संरचना पर्याप्त जटिल है कि 10 मिनट के बाद ग्रेनिंग और चेन शामिल करने के बाद, मुझे अभी भी पता नहीं है कि कौन सी परिभाषा का उपयोग किया जा रहा है। मुझे याद है कि विजुअल स्टूडियो में एक अच्छी सुविधा है जहां मैं टाइप पर राइट क्लिक कर सकता हूं और यह दिखाएगा कि टाइप कहां परिभाषित किया गया है। क्या लिनक्स के लिए एक समकक्ष अच्छा उपकरण है जो फाइलें आदि पढ़ता है? मुझे यकीन है कि वहाँ है, लेकिन मैं अभी भी अपने विकास पर्यावरण के लिए vim + grep का उपयोग करता हूं।यह निर्धारित करना कि एक प्रकार को परिभाषित किया गया है

+0

क्यों, gdb का उपयोग नहीं है कि अगर एक विकल्प है, क्योंकि मुझे नहीं लगता vim जब तक कि एक कहीं मौजूद है में जोड़ने के वी.एस. जैसा कोई विकल्प नहीं है? NetBeans जैसे आईडीई का प्रयोग करें। संबंधित प्रश्न, डुप्लिकेट नहीं http://stackoverflow.com/questions/559274/any-program-or-trick-to-find-the-definition-of-a-variable – DumbCoder

+0

परिभाषा को ट्रैक करने के समय और प्रयास को बर्बाद करने के बजाय उस चर के आप हमेशा अपने संसाधनों को उस व्यक्ति की हत्या की योजना बनाने में बेहतर खर्च कर सकते हैं जिसने इसे किया था। –

उत्तर

4

जटिल परिभाषाओं और निर्भरताओं के साथ यह सुविधा हमेशा विजुअल स्टूडियो में काम नहीं करती है।

समाधान: प्रीप्रोसेस्ड होने के बाद कोड को डंप करने के लिए अपने कंपाइलर से पूछें, इसे #line और #file निर्देशों को प्रिंट करने के लिए भी कहें। अपने प्रकार के लिए परिणामस्वरूप फ़ाइल के माध्यम से खोजें, फिर यह देखने के लिए निकटतम # फ़ाइल निर्देश देखें कि यह कहां से आया था।

(जीसीसी में आप -E स्विच का उपयोग कर सकते हैं)

+0

यह बहुत अच्छा काम किया। और आप सही हैं, प्रीप्रोसेसर की तुलना में सभी प्रीप्रोसेसर मैक्रोज़ को पार्स करने का बेहतर तरीका क्या है? –

+0

कभी-कभी यह आपकी परियोजना के रूप में एक ही विकल्प और पुस्तकालयों का उपयोग करके एक संक्षिप्त कार्यक्रम लिखने के लिए उपयोगी/त्वरित होता है और किसी भी शो रूटीन (यदि उपलब्ध हो) का लाभ उठाने में मदद करता है ताकि संरचना की परिभाषा का उपयोग किया जा सके। – Sparky

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