2010-02-25 7 views
7

मैं फ़ंक्शन द्वारा फ़ंक्शन और आउटपुट द्वारा उपभोग किए गए वैश्विक चर/मैक्रोज़ की एक सूची बनाना चाहता हूं। उदाहरण के लिए, के लिए:क्या सी फ़ंक्शन द्वारा उपयोग किए जाने वाले वैश्विक चरों और आउटपुट को सूचीबद्ध करने के लिए कोई उपकरण है?

void myfn(void) { 
    out1 = in + 1; 
    out2 = 2; 
} 

..the उपकरण 'में' के रूप में इनपुट और 'out1' और 'out2' के रूप में आउटपुट सूची जाएगा।

क्या कोई इस तरह के उपकरण के बारे में जानता है?

उत्तर

1

Clang कम से कम ऐसा कर सकता है, लेकिन यह सबसे आसान तरीका नहीं हो सकता है। आपको इसके सी ++ एपीआई के साथ इंटरफेस करने की आवश्यकता होगी।

3

हमारे DMS Software Reengineering Toolkit एक उत्पादन गुणवत्ता C Front End के साथ एक अनुकूलन कार्यक्रम विश्लेषण उपकरण है।

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

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

+0

दूसरी कड़ी गलत है के लिए की तरह NDepend। – Patrick

+0

दूसरा लिंक तय किया गया। धन्यवाद। –

+0

क्या यह रन टाइम ग्लोबल वैर एक्सेस दिखा सकता है? –

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

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