एक स्थिर कोड विश्लेषण उपकरण का चयन

वोट
54

मैं एक परियोजना जहाँ मैं एक UNIX वातावरण में सी में कोडिंग कर रहा हूँ पर काम कर रहा हूँ। मैं अपने स्रोत कोड देखने के फाहा उपकरण का उपयोग किया गया है। एक प्रकार का वृक्ष एक लंबे समय (1979 से) के आसपास किया गया है, किसी को भी मैं इस्तेमाल कर सकते हैं एक और अधिक हाल कोड विश्लेषण उपकरण का सुझाव कर सकते हैं? अधिमानतः एक उपकरण है कि नि: शुल्क है।

05/08/2008 को 22:19
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


15 जवाब

वोट
30

संकलक खुद को नजरअंदाज न करें।

संकलक के प्रलेखन पढ़ें और सभी चेतावनियों और त्रुटियों इसे प्रदान कर सकते हैं, और फिर आप के लिए मेकअप भावना के रूप में कई सक्षम करें।

यह भी सुनिश्चित करें त्रुटियों की तरह चेतावनी के इलाज के लिए अपने संकलक बताने के लिए ताकि आप तुरंत उन्हें ठीक करने के लिए मजबूर कर रहे हैं। (जीसीसी पर "-Werror")

इसके अलावा: "-Wall" जीसीसी करता पर नहीं सभी चेतावनियों को सक्षम, मूर्ख नहीं बनाया जा रहा है।

इसके अलावा भी: valgrind की जाँच - यह "स्वचालित रूप से पता [एस] कई स्मृति प्रबंधन और सूत्रण कीड़े, और प्रोफ़ाइल [एस] विस्तार से अपने कार्यक्रमों।" (मुक्त!)

वेलग्रिंड एक स्थिर चेकर नहीं है, लेकिन यह एक महान उपकरण है! http://valgrind.org

05/08/2008 को 23:17
का स्रोत उपयोगकर्ता

वोट
14

सी कोड के लिए, आप निश्चित रूप से निश्चित रूप से उपयोग करना चाहिए Flexelint । मैं लगभग 15 वर्षों के लिए यह प्रयोग किया जाता है और यह कसम। वास्तव में महान सुविधाओं यह है की है कि चेतावनी के चुनिंदा कोड में बंद किया जा सकता है और पर टिप्पणियों के माध्यम से है ( "/ * फाहा -e123 * /")। यह है जब आप कुछ भी असामान्य करना चाहता था एक शक्तिशाली प्रलेखन उपकरण साबित हुआ। "मैं चेतावनी एक्स बंद करने से कर रहा हूँ, इसलिए, वहाँ मैं एक्स कर रहा हूँ कुछ अच्छा कारण है"

दिलचस्प C / C ++ सवालों में किसी के लिए, अपनी साइट पर उनके उदाहरण से कुछ पर नजर और देखें कि आप संकेत को देखे बिना कीड़े पता लगा सकते हैं।

05/08/2008 को 22:42
का स्रोत उपयोगकर्ता

वोट
12

मैं के बारे में अच्छी बातें सुना है बजना स्थिर विश्लेषक , जो IIRC LLVM का उपयोग करता है के रूप में यह बैकएंड है। कि अपने मंच पर लागू हो जाता है, तो उस एक अच्छा विकल्प हो सकता है।

से क्या मैं समझता हूँ, यह थोड़ा सिर्फ वाक्य रचना विश्लेषण की तुलना में अधिक है। "स्वचालित बग ढूँढना", उदाहरण के लिए।

06/08/2008 को 01:40
का स्रोत उपयोगकर्ता

वोट
5

मैं हाल ही में सभी स्थैतिक विश्लेषण उपकरणों मैं अपने निपटान में था की एक सूची तैयार की है, मैं उन सब के मूल्यांकन की प्रक्रिया में अब भी कर रहा हूँ। ध्यान दें, ये ज्यादातर सुरक्षा विश्लेषण उपकरण हैं।

03/09/2008 को 23:11
का स्रोत उपयोगकर्ता

वोट
5

हम प्रयोग कर रहे Coverity रोकें सी ++ स्रोत कोड की जाँच करने के लिए।

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

15/08/2008 को 18:47
का स्रोत उपयोगकर्ता

वोट
4

आप उपयोग कर सकते हैं cppcheck । यह स्थिर कोड विश्लेषण उपकरण का उपयोग करने के लिए आसान है।
उदाहरण के लिए:
cppcheck --enable=all .
वर्तमान फ़ोल्डर के अंतर्गत सभी C / C ++ फ़ाइलों की जाँच करेगा।

25/06/2015 को 15:54
का स्रोत उपयोगकर्ता

वोट
1

आप कोशिश कर सकते हैं CppDepend , एक बहुत पूरा स्थिर विश्लेषक विंडोज और लिनक्स पर उपलब्ध है, वी.एस. प्लगइन, आईडीई या कमांड लाइन सोचा, और इसके लिए मुफ़्त है खुला स्रोत योगदानकर्ताओं

26/06/2015 को 12:01
का स्रोत उपयोगकर्ता

वोट
1

पीसी-फाहा / Flexelint बहुत शक्तिशाली और उपयोगी स्थिर विश्लेषण उपकरण, और अत्यधिक विन्यास हालांकि दुर्भाग्य से मुक्त नहीं हैं।

जब पहली बार इस तरह की एक उपकरण का उपयोग कर, वे चेतावनी की बड़ी संख्या है, जो यह मुश्किल बड़ी और छोटी लोगों के बीच अंतर कर सकते हैं उत्पादन कर सकते हैं। इसलिए, यह सबसे अच्छा है जितनी जल्दी हो सके इस परियोजना में अपने कोड पर उपकरण का उपयोग शुरू करने के लिए, और फिर जितनी बार संभव अपने कोड पर इसे चलाने के लिए, ताकि आप नई चेतावनी के साथ सौदा कर सकते हैं के रूप में वे आते हैं।

इस तरह लगातार उपयोग के साथ, आप जल्दी ही कैसे एक तरह से जो उपकरण द्वारा लागू नियमों के की पुष्टि करता है में अपने कोड लिखने के लिए सीख सकते हैं।

इस वजह से, मैं एक प्रकार का वृक्ष है जो अपेक्षाकृत तेजी से चलाने जैसे उपकरणों को पसंद करते हैं, और इसलिए बल्कि अधिक बोझिल उपकरण है जो आप, कम अक्सर का उपयोग कर यदि बिल्कुल खत्म हो सकता है की तुलना में, नित्य प्रयोग प्रोत्साहित करते हैं।

20/12/2008 को 00:29
का स्रोत उपयोगकर्ता

वोट
1

एक प्रकार का वृक्ष की तरह उपकरण आम तौर पर एक "झूठी चेतावनी" समस्या से ग्रस्त हैं: वे एक बहुत अधिक मुद्दों से वास्तव में मौजूद रिपोर्ट। सही मायने में उपयोगी चेतावनी के अनुपात में बहुत कम है, तो उपयोगकर्ता सिर्फ उपकरण की अनदेखी करने के सीखता है। अधिक आधुनिक उपकरणों सबसे अधिक संभावना है / दिलचस्प चेतावनी पर ध्यान केंद्रित करने के लिए कुछ प्रयास व्यय।

23/08/2008 को 15:29
का स्रोत उपयोगकर्ता

वोट
1

आपको पता चल सकता ऊनो उपकरण उपयोगी। यह कुछ मुफ्त गैर खिलौना विकल्पों में से एक है। यह "अर्थ" त्रुटियों (शून्य सूचक derefs, आउट-ऑफ-सीमा सरणी सूचकांक, और अप्रारंभीकृत चर का उपयोग) की एक छोटी संख्या पर ध्यान केंद्रित में फाहा, Flexelint, आदि से अलग है। यह भी लॉक-अनलॉक अनुशासन की तरह उपयोगकर्ता परिभाषित चेक, अनुमति देता है।

मैं एक उत्तराधिकारी उपकरण, के एक सार्वजनिक रूप से जारी करने की दिशा में काम कर रहा हूँ ओरियन ( सामग्री उपलब्ध नहीं अब और )

15/08/2008 को 23:39
का स्रोत उपयोगकर्ता

वोट
0

विरल एक कंप्यूटर सॉफ्टवेयर उपकरण, लिनक्स पर पहले से ही उपलब्ध, लिनक्स कर्नेल में संभव कोडिंग दोष लगाने के लिए बनाया गया है।

वहाँ के दो सक्रिय परियोजनाओं कर रहे हैं लिनक्स सत्यापन केंद्र लोड करने योग्य कर्नेल मॉड्यूल की गुणवत्ता में सुधार करने के उद्देश्य से।

  1. लिनक्स चालक सत्यापन (LDV) - लिनक्स डिवाइस ड्राइवर के स्थिर स्रोत कोड सत्यापन के लिए एक व्यापक टूलसेट।
  2. Kedr फ्रेमवर्क - गतिशील विश्लेषण और कर्नेल मॉड्यूल के सत्यापन के लिए एक विस्तृत रूपरेखा।
  3. एक और चल रही परियोजना लिनक्स फाइल सिस्टम सत्यापन कि लिनक्स फाइल सिस्टम कार्यान्वयन के सत्यापन के लिए एक समर्पित टूलसेट विकसित करने के लिए करना है।
20/12/2012 को 08:36
का स्रोत उपयोगकर्ता

वोट
0

मैंने पाया है कि यह कई स्थिर विश्लेषण उपकरणों का उपयोग करने कीड़े खोजने के लिए आम तौर पर सबसे अच्छा है। हर उपकरण को अलग ढंग से बनाया गया है, और वे एक दूसरे से बहुत अलग बातें पा सकते हैं।

वहाँ वार्ता से कुछ में कुछ अच्छे विचार-विमर्श कर रहे हैं यहाँ । यह एक सम्मेलन स्थिर विश्लेषण पर होमलैंड सुरक्षा विभाग द्वारा आयोजित से है।

15/06/2011 को 07:53
का स्रोत उपयोगकर्ता

वोट
0

अच्छा दिन,

मैं पूरी तरह सुझाव से सहमत पढ़ सकते हैं और पचाने क्या संकलक -Wall सेट करने के बाद आप कह रहा है करने के लिए।

सुरक्षा के लिए एक अच्छा स्थिर विश्लेषण उपकरण है FlawFinder डेविड व्हीलर ने लिखा है। यह एक अच्छा काम विभिन्न सुरक्षा कारनामे की तलाश में है,

हालांकि, यह एक जानकार किसी को अपने कोड के माध्यम से पढ़ने के होने को प्रतिस्थापित नहीं करता। दाऊद ने अपने वेब पेज पर कहते हैं, "एक उपकरण के साथ एक मूर्ख अभी भी एक मूर्ख है!"

चियर्स,

लूटना

26/08/2008 को 16:21
का स्रोत उपयोगकर्ता

वोट
0

फाहा लगातार अद्यतन कर रहा है ... तो क्यों आप एक और अधिक हाल के एक चाहते हैं।

BTW flexelint है फाहा

23/08/2008 को 12:42
का स्रोत उपयोगकर्ता

वोट
0

वहाँ एक "-Weffc ++" जीसीसी के लिए विकल्प है जो मैक ओएस एक्स आदमी पृष्ठ के अनुसार होगा:

स्कॉट Meyers 'प्रभावी सी ++ किताब से निम्नलिखित शैली दिशानिर्देशों के उल्लंघन के बारे में चेतावनी दें:

[स्निप]

मैं तुम्हें सी के बारे में पूछा है, लेकिन यह सबसे करीब मैं के बारे में पता है ..

15/08/2008 को 23:03
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more