إصدار cppcheck 2.6 ، محلل كود ثابت للغات C ++ و C.

تم إصدار نسخة جديدة من محلل الكود الثابت cppcheck 2.6، والذي يسمح لك بتحديد فئات مختلفة من الأخطاء في التعليمات البرمجية باللغتين C وC++، بما في ذلك عند استخدام بناء جملة غير قياسي، نموذجي للأنظمة المدمجة. يتم توفير مجموعة من المكونات الإضافية التي يتم من خلالها دمج cppcheck مع العديد من أنظمة التطوير والتكامل المستمر والاختبار، كما يوفر ميزات مثل التحقق من توافق الكود مع نمط الكود. لتحليل التعليمات البرمجية، يمكنك استخدام المحلل اللغوي الخاص بك أو محلل خارجي من Clang. ويتضمن أيضًا البرنامج النصي donate-cpu.py لتوفير الموارد المحلية للقيام بأعمال مراجعة التعليمات البرمجية التعاونية لحزم دبيان. يتم توزيع الكود المصدري للمشروع بموجب ترخيص GPLv3.

يركز تطوير cppcheck على تحديد المشكلات المرتبطة بالسلوك غير المحدد واستخدام التصميمات الخطرة من وجهة نظر السلامة. الهدف أيضًا هو تقليل الإيجابيات الكاذبة. من بين المشاكل التي تم تحديدها: مؤشرات إلى كائنات غير موجودة، والتقسيم على صفر، وتجاوزات الأعداد الصحيحة، وعمليات إزاحة البت غير الصحيحة، والتحويلات غير الصحيحة، ومشاكل عند العمل مع الذاكرة، والاستخدام غير الصحيح لـ STL، وإلغاء مرجعيات المؤشر الفارغ، واستخدام عمليات التحقق بعد الوصول الفعلي إلى المخزن المؤقت، وتجاوزات المخزن المؤقت، واستخدام المتغيرات غير المهيأة.

новой версии:

  • تمت إضافة الاختبارات التالية إلى قلب المحلل:
    • غياب عامل الإرجاع في نص الوظيفة؛
    • يسجل البيانات المتداخلة، ويحدد السلوك غير المحدد؛
    • القيمة التي تتم مقارنتها خارج تمثيل القيمة للنوع؛
    • لا ينطبق تحسين النسخ على العودة std::move(local);
    • لا يمكن فتح الملف في وقت واحد للقراءة والكتابة في تدفقات مختلفة (الدفق)؛
  • بالنسبة لمنصات Unix، تمت إضافة دعم لعرض الرسائل التشخيصية بألوان مختلفة؛
  • تمت إضافة التحليل الرمزي لـ ValueFlow. يستخدم دلتا بسيطة عند حساب الفرق بين متغيرين غير معروفين؛
  • القواعد المستخدمة لقائمة الرموز المميزة "تعريف" يمكن أن تتطابق أيضًا مع #include؛
  • يمكن أن تحتوي علامة المكتبة الآن على علامة ، وبالتالي وظائف مجانية، والتي يمكنها قبول حاويات مثل std::size، std::empty، std::begin، std::end، إلخ. يمكن تحديد الحقل أو الإجراء للموصلات؛
  • يمكن أن تحتوي علامة مكتبة الآن على علامة للمؤشرات الذكية التي لها ملكية فريدة. يتم الآن إصدار تحذير حول المراجع المتدلية لهذه الأنواع من المؤشرات الذكية؛
  • إصلاح المشاكل المتعلقة بمعالجة المعلمة —cppcheck-build-dir؛
  • يمكن لتقرير html الآن عرض معلومات حول المؤلف (باستخدام gitlem)؛
  • تحذيرات موسعة حول المتغيرات التي ليست ثابتة، ولكن يمكن أن تكون كذلك؛
  • تم تصحيح الأخطاء وأوجه القصور المتراكمة في المحلل.

بالإضافة إلى ذلك، تم تنفيذ عمليات التحقق من Misra C 2012، بما في ذلك التعديل 1 والتعديل 2، بالكامل، باستثناء القواعد 1.1 و1.2 و17.3. يجب إجراء الاختبارات 1.1 و1.2 بواسطة المترجم. يمكن إجراء التحقق 17.3 بواسطة مترجم مثل مجلس التعاون الخليجي.

المصدر: opennet.ru

إضافة تعليق