
في هذه المقالة ، سوف تتعلم كيفية تشغيل فحص مشروع مضمن وكيفية التعامل مع تقرير المحلل. يدعم محلل PVS-Studio عددًا من المجمعين للأنظمة المدمجة. في الإصدار الحالي ، يمكن التحقق من المشروعات عند الإنشاء باستخدام أحد المترجمين التاليين لـ Window و Linux و macOS:
تركيب
يعتمد إجراء التثبيت على نظام التشغيل الذي تقوم بتطويره. ضمن Linux ، يمكنك تثبيت المحلل من المستودع أو من حزمة التثبيت.
مثال للأنظمة المعتمدة على دبيان:
wget -q -O - https:
أو
sudo gdebi pvs-studio-VERSION.deb
بالنسبة لنظام التشغيل MacOS ، يمكن إجراء التثبيت والتحديث من
Homebrew :
brew install viva64/pvs-studio/pvs-studio brew upgrade pvs-studio
الخيار الثاني هو تثبيت الحزمة من
dmg أو
فكها يدويًا من الأرشيف.
تحت Windows ، يتم إجراء التثبيت باستخدام برنامج التثبيت:
يمكنك تنزيل حزم التثبيت لجميع الأنظمة المدعومة ، وإذا لزم الأمر ، طلب مفتاح تجريبي في صفحة "
تنزيل وتجربة PVS-Studio ".
بعد التثبيت ، أدخل مفتاح الترخيص. يمكنك العثور على معلومات حول كيفية القيام بذلك على منصات مختلفة ، وعلى صفحة الوثائق "
كيفية الدخول إلى ترخيص PVS-Studio وماذا تفعل بعد ذلك ."
التحقق من المشروع
يمكن إجراء التحقق من المشروع للأنظمة المضمنة بنفس الطرق كما في حالة التطوير في أنظمة Windows و Linux و macOS.
تمت مناقشة خيارات التشغيل لنظام التشغيل Linux في المقالة "
التعريف بمحلل ثابت PVS-Studio عند تطوير برامج C ++ في بيئة Linux ". ضع في اعتبارك أنه نظرًا لاستخدام التحويل البرمجي المتداخل للبناء ضمن إطار مضمن ، وقد يكون اسم المترجم غير قياسي ، فقد تحتاج إلى تحديده عند تحليل المشروع. للقيام بذلك ، استخدم
خيار سطر الأوامر
–compiler أو
–c :
pvs-studio-analyzer analyze -c MyCompiler
استخدم هذه المعلمة عندما يتعذر على المحلل تحديد نوع برنامج التحويل البرمجي المستخدم ، أي عند إصدار الخطأ "لم يتم العثور على وحدات ترجمة".
عند الترجمة المتداخلة ، نظرًا لأن النظام الأساسي المستهدف يختلف عن النظام الأساسي الذي يتم بموجبه التجميع ، مع المترجم ، فقد تحتاج إلى تحديد النظام الأساسي الهدف باستخدام المعلمة
--platform ، وكذلك نوع المعالج المسبق (- المعالج).
المنصات المدعومة:
win32 و x64 و linux32 و linux64 و macos و arm.المعالجات المدعومة:
gcc ، clang ، keil.افتراضيًا ، يختار Linux نظام
التشغيل linux64 و
gcc preprocessor.
إذا كنت تستخدم Windows ، فيمكنك التحقق من المشروع في وضع مراقبة الترجمة. للقيام بذلك ، قم بتشغيل الأداة المساعدة "
C و C ++ مراقبة مترجم UI " ، والذي تم تثبيته مع محلل. لبدء المراقبة ، انتقل إلى قائمة "
أدوات " وانقر فوق "
تحليل ملفاتك" ... يفتح مربع حوار:
انقر فوق الزر "
بدء المراقبة " وقم بتشغيل الإنشاء. بعد الانتهاء ، انقر فوق الزر "
إيقاف المراقبة " في مربع الحوار في الركن الأيمن السفلي من الشاشة:
يمكن عرض نتيجة الاختبار في الإطار الرئيسي لأداة "
C و C ++ Compiler Monitoring UI ".
يمكنك أيضًا تشغيل التحليل من سطر الأوامر. لهذا ، يتم استخدام الأداة المساعدة CLMonitor. يمكنك البدء في المراقبة باستخدام الأمر:
CLMonitor.exe monitor
بعد اكتمال التجميع ، يجب تشغيل الأداة المساعدة في وضع التحليل:
CLMonitor.exe analyze -l "<path>\out.plog"
سيقوم المحلل بفحص المشروع وحفظ النتائج في الملف المحدد في المعلمة
-l .
راجع أيضًا قسم الوثائق "
نظام مراقبة التحويل البرمجي في PVS-Studio ".
العمل مع التقارير
لعرض التقرير تحت Linux ، تحتاج إلى تحويل الملف الذي تم الحصول عليه نتيجة للمحلل إلى أحد التنسيقات المدعومة باستخدام أداة
plog-Converter . يمكنك الحصول على التقرير بتنسيق HTML مع إمكانية عرض التعليمات البرمجية المصدر باستخدام الأمر التالي:
plog-converter -a GA:1,2 -t fullhtml /path/project.log -o /path/report_dir
يوصف تحويل التقارير بمزيد من التفصيل في المقالة "
التعرّف على محلل ثابت PVS-Studio عند تطوير برامج C ++ في Linux ".
ضمن Windows ، هناك أيضًا أداة مساعدة
PlogConverter تتيح لك تحويل ملفات التقارير بطريقة مماثلة:
PlogConverter.exe <path>\out.plog --renderTypes= FullHtml --analyzer=GA:1,2
أو
PlogConverter.exe D:\Projct\out.plog -t FullHtml -a GA:1,2
أيضًا ، يمكن عرض تقرير بتنسيق
plog باستخدام الأداة المساعدة "
C و C ++ Compiler Monitoring UI " من خلال القائمة
File-> Open PVS-Studio Log ...مثال:
إذا لزم الأمر ، يمكنك من خلال هذه الأداة المساعدة تصدير التقرير إلى أحد التنسيقات المدعومة من خلال قائمة "
ملف ".
معيار ميسرا
يقوم PVS-Studio بتصنيف التنبيهات وفقًا
CWE و
SEI CERT ، وهو مناسب لاختبار الأمان الثابت (
SAST ) للتطبيقات العادية. ومع ذلك ، فإن الأنظمة المدمجة بها متطلبات أمنية مختلفة قليلاً والتي يغطيها معيار
MISRA المطور خصيصًا. يدعم الإصدار الحالي للمحلل جزءًا من القواعد من MISRA C و MISRA C ++ ، ويمكن الاطلاع على قائمة التشخيصات
هنا ، وتتوسع باستمرار.
غالبًا ما يكون استخدام قواعد MISRA عند التحقق من المشروعات غير المخصصة للتضمين أمرًا غير مبرر. هذا بسبب تفاصيل المعيار. في معظم الحالات ، إذا لم يتم كتابة الكود في الأصل مع توقع امتثال MISRA ، فسيكون هناك الكثير من التحذيرات الخاطئة وغير المجدية أثناء الفحص. لذلك ، يتم تعطيل قواعد MISRA بشكل افتراضي.
لتمكين تحليل MISRA في نظام Linux ، تحتاج إلى تشغيل التحليل باستخدام مفتاح التبديل
-a وتمرير المعلمة العددية التي تحدد الوضع المطلوب. هذه المعلمة هي مزيج من حقول البت:
-a [MODE], --analysis-mode [MODE] MODE defines the type of warnings: 1 - 64-bit errors; 2 - reserved; 4 - General Analysis; 8 - Micro-optimizations; 16 - Customers Specific Requests; 32 - MISRA. Modes can be combined by adding the values Default: 4
إطلاق المثال (تم تضمين GA و MISRA):
pvs-studio-analyzer analyze -a 36 -o /path/report.log
عند استخدام
محول plog ، يجب أن تشير أيضًا إلى أنه يجب
تضمين تشخيصات MISRA في التقرير:
plog-converter -a MISRA:1,2,3 -m misra ....
ضمن Windows ، يمكنك استخدام مربع حوار إعدادات الأداة المساعدة "
C و C ++ Monitor UI ":
تم توضيح مزيد من التفاصيل حول دعم MISRA في المقالة "
PVS-Studio: دعم معايير MISRA C و MISRA C ++ ".
استنتاج
في هذه المقالة ، استعرضنا إمكانات محلل PVS-Studio لاختبار المشاريع التي تركز على الأنظمة المدمجة. إذا كنت بحاجة إلى مزيد من المعلومات المفصلة حول كيفية استخدام المحلل ، أوصي بقراءة المقالات التالية:

إذا كنت ترغب في مشاركة هذه المقالة مع جمهور يتحدث الإنجليزية ، فالرجاء استخدام الرابط الخاص بالترجمة: Yuri Minaev.
استخدام محلل ثابت PVS-Studio في تطوير C و C ++ للأنظمة المدمجة