
يدعم PVS-Studio تحليل المشروعات التي تم تطويرها في C و C ++ و C # و Java. يمكنك استخدام أداة التحليل ضمن Windows و Linux و macOS. ستخبرك هذه المقالة الصغيرة بأساسيات تحليل كود C و C ++ في بيئة Linux.
تركيب
هناك طرق مختلفة لتثبيت PVS-Studio في نظام Linux ، اعتمادًا على نوع التوزيع. الطريقة الأكثر ملاءمة والمفضلة هي استخدام المستودع ، لأنه يسمح بالتحديث التلقائي للمحلل عند إصدار إصدارات جديدة. خيار آخر هو استخدام حزمة التثبيت ، والتي يمكنك الحصول عليها
هنا .
تختلف أوامر التثبيت اعتمادًا على توزيعة Linux التي تستخدمها. على سبيل المثال ، هكذا يبدو التثبيت من المستودع ضمن الأنظمة المستندة إلى دبيان:
wget -q -O - https:
لتثبيت PVS-Studio من الحزمة القابلة للتنزيل ، يمكنك استخدام الأداة المساعدة
gdebi :
sudo gdebi pvs-studio-VERSION.deb
تم وصف عملية التثبيت بمزيد من التفصيل في قسم وثائق "
تثبيت وتحديث PVS-Studio على نظام Linux ". يمكنك أيضًا العثور على معلومات حول أنظمة غير دبيان هناك.
بمجرد تثبيت PVS-Studio ، ستحتاج إلى إدخال بيانات الترخيص. إليك الأمر لذلك:
pvs-studio-analyzer credentials NAME KEY [-o LIC-FILE]
NAME و
KEY هما اسم المستخدم المسجل ومفتاح الترخيص على التوالي. تتيح لك المعلمة الاختيارية
–o تحديد الموقع ، حيث سيتم إنشاء ملف الترخيص. بشكل افتراضي ، سيتم تخزينه في الدليل
~ / .config / PVS-Studio / .
إذا كنت بحاجة إلى مفتاح تجريبي ، يمكنك الحصول عليه في صفحة "
تنزيل وتقييم PVS-Studio ".
التحقق من المشروع الخاص بك
بمجرد الحصول على تثبيت محلل ، يمكنك البدء في التحقق من المشاريع. هناك طريقتان رئيسيتان للقيام بذلك:
- رصد تجميع.
- يعمل من بناء النظم مباشرة.
دعنا نتحدث عن الطريقة الأولى. لإطلاق المراقبة في نظام Linux ، فأنت بحاجة إلى الأداة المساعدة. يستخدمه PVS-Studio لجمع قائمة ومعلمات العمليات التي تم إطلاقها أثناء الإنشاء.
استخدم الأمر أدناه لبدء الإنشاء:
pvs-studio-analyzer trace -- make
هنا ، يتم استخدام
make ، ولكن أي أمر آخر تقوم بتشغيله لبناء مشروعك يمكن أن يكون في مكانه. إذا لزم الأمر ، يمكنك تمرير معلمات سطر الأوامر إليها بالطريقة المعتادة.
بعد
الإنشاء ،
سينشئ strace ملفًا ، والذي سيستخدمه المحلل للتحقق من شفرة المصدر. لبدء التحليل ، استخدم الأمر أدناه.
pvs-studio-analyzer analyze -o /path/to/project.log
نتيجة لذلك ، سيتم إنشاء ملف سجل مشفر ، يمكنك تحويله إلى أحد التنسيقات المدعومة. سنتحدث عن العمل مع التقارير في وقت لاحق.
إلى جانب
الضيق ، يمكنك أن
تبني التحليل على ملف
compile_commands.json (قاعدة بيانات تجميع JSON). تحتوي العديد من أنظمة الإنشاء على وسائل مضمّنة لتصدير أوامر الترجمة ، أو يمكنك استخدام الأداة المساعدة
BEAR للقيام بذلك. إليك الأمر لبدء التحليل في هذه الحالة:
pvs-studio-analyzer analyze –f /path/to/compile_commands.json
لاحظ أن المحلل يتعرف على المحول البرمجي ، المستخدم في عملية الإنشاء ، باسمه القابل للتنفيذ. إذا
ظهرت رسالة الخطأ "لم يتم العثور على وحدات ترجمة" أثناء محاولة تحليل مشروعك ، فجرب تحديد اسم المترجم الخاص بك بشكل صريح عبر مفتاح سطر الأوامر
–compiler أو
–c :
pvs-studio-analyzer analyze -c MyCompiler
قد تحتاج إلى ذلك إذا كنت تستخدم التصنيف المتقاطع أو إذا كان المترجم الخاص بك له اسم قابل للتنفيذ غير قياسي.
إلى جانب وضع المراقبة ، يمكنك دمج محلل مباشرة في نظام البناء الخاص بك أو IDE. يوفر مستودع
GitHub الرسمي لدينا أمثلة على المشروعات التي تم تكوين التكامل فيها بالفعل:
لمعرفة المزيد حول تشغيل المحلل ضمن Linux ، راجع
الوثائق .
العمل مع التقارير
بعد التحقق من المشروع ، يقوم المحلل بإنشاء تقرير مشفر. لتحويلها إلى أحد التنسيقات المدعومة ، تحتاج إلى استخدام الأداة المساعدة
plog-Converter ، التي تأتي مع تثبيت PVS-Studio.
فيما يلي قائمة بالتنسيقات المدعومة:
- xml-a تنسيق مناسب لمزيد من المعالجة لنتائج التحليل ، وهو مدعوم بواسطة البرنامج المساعد لـ SonarQube ؛
- csv - ملف مخازن البيانات الجدولية (الأرقام والنص) في نص عادي ؛
- errorfile هو تنسيق الإخراج من مجلس التعاون الخليجي وكلانج.
- قائمة المهام - تنسيق خطأ يمكن فتحه في QtCreator ؛
- أتش تي أم أل - تقرير أتش تي أم أل مع وصف قصير لنتائج التحليل ؛
- fullhtml - تقرير مع فرز نتائج التحليل وفقًا لمعايير مختلفة والتنقل على طول شفرة المصدر.
تنسيق fullhtml هو الأنسب لعرض التقرير ، لأنه يسمح بالانتقال إلى سطر الشفرة ، المقابلة للتحذير الذي تهتم به. يسمح لك الأمر التالي بتحويل التقرير إلى هذا التنسيق:
plog-converter -a GA:1,2 -t fullhtml /path/project.log -o /path/report_dir
عند تشغيله ،
سيحتوي الدليل الذي تم إنشاؤه حديثًا باسم
/ path / report_dir على جميع ملفات التقرير.
انتبه إلى المعلمة
-a . يسمح لك بتحديد أي التحذيرات يجب أن تظهر في التقرير الناتج. أنها مريحة إذا كنت بحاجة إلى تصفية إخراج المحلل. سيقوم الأمر أعلاه بإنشاء تقرير ، والذي سيحتوي فقط على رسائل تحليل عامة لمستويات اليقين الأولى والثانية (
عالية ومتوسطة ).
مثال تقرير:
من خلال النقر داخل خلية
الموقع في إحدى الرسائل ، يمكنك الانتقال إلى سطر الشفرة المقابل:
بالنقر فوق الرمز التشخيصي في عمود
الرمز ، يمكنك فتح الوثائق الخاصة بهذا التشخيص.
قمع تحذيرات المحلل
عند استخدام أي محلل ثابت للتحقق من شفرة المصدر ، قد تحصل على إيجابيات كاذبة ، أو ببساطة تحذيرات من الضوضاء غير المرغوب فيها. PVS-Studio لديه وسائل لقمع مثل هذه الرسائل. لاستهداف التحذيرات الفردية ، يمكنك استخدام إحدى الطرق الموضحة في مقالة الوثائق "
قمع الإنذارات الكاذبة ".
أيضًا ، عند التحقق من الشفرة القديمة ، قد ترغب في منع كل التحذيرات. كقاعدة عامة ، قد تحتاج إلى ذلك إذا كنت تريد فقط التحقق من التعليمات البرمجية الجديدة التي تضيفها إلى قاعدة بيانات موجودة. للقيام بذلك ، استخدم المعلمة
suppress للأداة المساعدة
pvs-studio-analys .
يمكنك كبح جماح التحذيرات في تقرير باستخدام هذا الأمر:
pvs-studio-analyzer suppress /path/to/report.log
يتم تخزين المعلومات المتعلقة بالتحذيرات المكبوتة في ملف باسم
suppress_base.json ، والذي يقع بجوار المشروع. يتم استبعاد هذه الرسائل من التقارير المتعلقة بالتحققات اللاحقة.
يتم وصف هذه الآلية بالتفصيل
هنا .
استنتاج
كانت هذه مقدمة موجزة لاستخدام PVS-Studio في نظام Linux. آمل أن تكون مفيدة وتمكنت من الإجابة على الأسئلة الأكثر شيوعا. إذا كنت بحاجة إلى مزيد من المعلومات حول موضوع هذه المقالة ، فراجع الوثائق
هنا .