سؤال

كنت طلبت مؤخرا عن بدائل Coverity منع على قاعدة القانون التي تضم كلا من C/C++ و Java.ومن الواضح على جافا جانب الأدوات المجانية المتاحة تشمل Findbugs (تحليل التعليمات البرمجية المترجمة) و PMD (تحليل رمز ثابت).فهي قوية جدا ، خاصة عندما تبدأ التحقيق في التكامل مع ايديس (التي هي مجانا).

بيد أن الأمور مشبوه عند بدء التحرك في C/C++ عالم مختلف المجمعين, أبنية, الخ.

اقترحت مجموعة متنوعة من أدوات جافا الجانب ، بما في ذلك Findbugs و امج.ما أبحث عنه هو أفضل خيار ل C/C++ الجانب عند النظر باستخدام المقاييس التالية:

  1. السعر:مجانا هو أفضل ولكن يمكن أن يكون تعرض للضرب من قبل أفضل قيمة.ومع ذلك, نماذج التسعير التي تتقاضى في كل سطر من التعليمات البرمجية المرعبة.
  2. مجموعة ميزة:كيف هذه الأداة جعل حياتي أفضل ؟ ما هي الطرق يفعل ذلك الكشف عن أخطائي قبل أن تحقق لهم في, قبل ان السفينة رمز ، وما إلى ذلك ؟
  3. سهولة الاستخدام:هل يمكنني استخدام أداة في مكتبي ؟ هل يمكنني مشاركة التقارير و / أو الاستنتاجات ؟ هل يمكنني دمج أداة مع Fogbugz (والتي نستخدمها في المجموعة)?هل يمكنني دمج هذه الأداة في CruiseControl (أو ما يعادلها) ؟

في نهاية المطاف أداة سيكون شيئا مفيدا للاستخدام مثل مزيج من Findbugs و امج متطابقة مع مجموعة ميزة ، كل صفر دولار لكل مقعد.

هل كانت مفيدة؟

المحلول

اثنين التي تتبادر إلى الذهن هي جبيرة ل ج و Cppcheck C++.

إذا كنت ترغب في البحث عن مزيد من الخيارات ، وهذه وظيفة من هذه الأدوات هو "تحليل رمز ثابت".التي قد تساعدك على العثور على مزيد من أدوات C أو C++.أيضا, كنت قد تكون مهتمة في الإجابة على السؤال "ماذا مفتوحة المصدر C++ ثابت أدوات التحليل المتاحة؟"

نصائح أخرى

C++ هي معقدة بما فيه الكفاية اللغة أن يصنع ذلك (مثل إعادة بيع ديون أو ثابت أدوات التحليل) ليست مجرد جيدة مثل Java أو C#.

Gimpel البرنامج PC-الوبر هو أقرب ما يكون إلى معيار علة أداة التحقق C++ أعلم.انها تجارية معقولة نموذج التسعير.أنا لا أعرف جيدا كيف يدمج مع الأدوات الأخرى.

على رنة مشروع مفتوح المصدر في نهاية المطاف أن تكون قادرة على القيام بكثير من ما تريد (كما يبدو حقا بارد), لكنه لا يزال في التنمية.

PC-الوبر هو الطريق للذهاب.على عكس معظم الأدوات الأخرى ، فقد الكاملة بين الوظيفة و بين وحدة قيمة تتبع و يدعم جميع شعر حواف القالب تجميع/تحليل كذلك.اشتريت نسخة شخصية لنفسي حوالي 9 سنوات فقط لأنها رخيصة جدا.انتهى استخدامه كثيرا في مشاريع مفتوحة المصدر.PC-الوبر لا الترخيص على أساس LOC, لا هاتف المنزل و لا يوجد ملقم الترخيص.انها كثيرا على نظام الشرف جدا لا معنى له.على مدى 9 سنوات, لقد وجدت بعض المسائل في ذلك (و تلك كانت قليلة ومتباعدة) ، ولكن لديهم دائما تقريبا تم إصلاحها في غضون بضعة أسابيع.

المصدر المفتوح الحكمة ، هناك SMatch ، على أساس Coverity الفوقية-تجميع تقنيات التحليل الذي النبيذ المشروع يستخدم بشكل كبير جدا إلى تأثير كبير.PMD هو cpd (نسخ لصق كاشف) sub-أداة يعمل على C++ و هو سريع حقا.بالنسبة cyclomatic التعقيد ، هناك pmccabe بسهولة للتثبيت عن طريق apt-get (على لينكس ؛ على ويندوز ، ترجمة المصدر تحت cygwin).

PC-الوبر لا تتطلب بعض التكوين للحصول على عمل جيد ، يوم أو يومين على الأكثر.أدوات أخرى لا تعمل كما عميق, لذلك يمكنك فقط واقتدار مع أمر مثل "العثور على .-اسم | xargs pmccabe | نوع -n | ذيل -n 20"

لقد استعملت Klocwork و عقلانية برنامج محلل في الماضي, و كلاهما يعمل بشكل جيد ، على الرغم من أن كلاهما التجارية/غير حرة.

يمكنني استخدام flawfinder.py الذي يمسح عن 160 خطير وظائف في C/C++.http://www.dwheeler.com/flawfinder/

إذا كنت ترغب في روبي ميناء على أساس flawfinder ثم يمكنك استخدام vulnxpose.rb.https://github.com/nanotechz9l/Source-code-analyzer

كل من هذه الأدوات بفحص C/C++ ملفات التعليمات البرمجية المصدر على نقاط الضعف المعروفة بما في ذلك عازلة الفيضانات ، شروط السباق ، وضعف التشفير ، chroot السجن التكوينات ... وأكثر).

ريك

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top