PVS- ستوديو لبرنامج Visual Studio


العديد من مقالاتنا مكرسة لأي شيء ، ولكن ليس لأداة PVS-Studio نفسها. لكننا نفعل الكثير لجعله مناسبًا للمطورين لاستخدام أداتنا. ولكن هذا هو بالضبط ما وراء الكواليس. قررت إصلاح هذا الموقف والتحدث عن البرنامج المساعد PVS-Studio لبرنامج Visual Studio. إذا كنت تستخدم Visual Studio ، فهذا المقال مناسب لك.

ما هو تحليل رمز ثابت ولماذا هو مطلوب


تحليل الكود الثابت هو عملية تحديد الأخطاء والعيوب في الكود المصدري للبرامج. يمكن اعتبار التحليل الثابت بمثابة عملية مراجعة تلقائية للكود. مراجعة التعليمات البرمجية التعاونية هي منهجية رائعة. ولكن لديها أيضا عيب كبير - تكلفة عالية. من الضروري جمع العديد من المبرمجين بانتظام لمراجعة الكود الجديد أو إعادة مراجعة الكود بعد تقديم التوصيات.

من ناحية ، أريد مراجعة الكود بانتظام. من ناحية أخرى ، إنها مكلفة للغاية. المفاضلة هي أدوات تحليل الشفرة الثابتة. يعالجون بلا كلل الكود المصدري للبرامج ويقدمون توصيات للمبرمج لدفع المزيد من الاهتمام إلى أقسام معينة من الكود بالطبع ، لا يحل البرنامج محل المراجعة الكاملة للرمز الذي ينفذه فريق من المبرمجين. ومع ذلك ، فإن نسبة الفائدة / السعر تجعل استخدام التحليل الثابت ممارسة مفيدة للغاية للعديد من الشركات. إذا كان القارئ مهتمًا بأرقام محددة ، فإني أقترح التعرف على المقالة " PVS-Studio ROI ".

هناك عدد كبير من أجهزة تحليل الشفرات الثابتة التجارية والمجانية. تتوفر قائمة كبيرة من أجهزة التحليل الثابتة على ويكيبيديا: قائمة أدوات لتحليل الشفرات الثابتة . قائمة اللغات التي يوجد بها محلل الكود الثابت هي أيضًا كبيرة جدًا (C ، C ++ ، C # ، Java ، Ada ، Fortran ، Perl ، Ruby ، ​​...). بطبيعة الحال ، سوف نخبرك عن محلل PVS-Studio .

الميزة الرئيسية للتحليل الثابت هي إمكانية حدوث انخفاض كبير في تكلفة القضاء على العيوب في البرنامج. كلما تم التعرف على الخطأ مسبقًا ، انخفضت تكلفة إصلاحه. وفقًا للبيانات الواردة في كتاب ماكونيل "Perfect Code" ، فإن إصلاح الخطأ في مرحلة الاختبار سيكلف عشرة أضعاف تكلفة مرحلة التصميم (الكتابة):

الشكل 1. متوسط ​​تكلفة إصلاح العيوب اعتمادًا على وقت تقديمها واكتشافها (يتم أخذ بيانات الجدول من الكتاب بواسطة S. McConnell & quot؛ Perfect Code & quot؛).

الشكل 1. متوسط ​​تكلفة إصلاح العيوب بناءً على وقت تقديمها واكتشافها (يتم أخذ البيانات الخاصة بالجدول من كتاب S. McConnell "Perfect Code").

تتيح لك أدوات التحليل الثابت تحديد عدد كبير من الأخطاء في مرحلة التصميم ، مما يقلل بشكل كبير من تكلفة تطوير المشروع بأكمله. على سبيل المثال ، يمكن أن يبدأ محلل الشفرة الثابتة PVS-Studio في الخلفية بعد التجميع مباشرةً ، وإذا تم العثور على خطأ محتمل ، فسيقوم بإخطار المبرمج. سيتم توضيح المزيد حول هذا الوضع أدناه.

PVS-Studio محلل كود ثابت


PVS-Studio هو محلل ثابت يحدد الأخطاء ونقاط الضعف المحتملة في الكود المصدري للتطبيقات في C و C ++ (الامتدادات مدعومة أيضًا: C ++ / CLI و C ++ / CX ) و C # و Java على أنظمة Windows و Linux و macOS. يتكامل المحلل تمامًا مع Visual Studio 2010 - 2019 و IntelliJ IDEA. في هذه المقالة سوف نلقي نظرة فاحصة على عمل PVS-Studio للتحقق من الشفرة في C و C ++ و C #. يمكنك أن تقرأ عن كيفية استخدام PVS-Studio لاختبار كود جافا في IntelliJ IDEA هنا .

بعد تثبيت PVS-Studio والاندماج في Visual Studio ، يتلقى المستخدمون عنصر "PVS-Studio" إضافي في القائمة الرئيسية ونافذة للعمل مع الرسائل التشخيصية (انظر الشكل 2).

الشكل 2. العناصر الرئيسية التي أضافها محلل PVS-Studio أثناء التكامل في Visual Studio.

الشكل 2. العناصر الرئيسية التي أضافها محلل PVS-Studio أثناء التكامل في Visual Studio.

الإعدادات الأولية


المحلل جاهز للتشغيل فور التثبيت. في معظم الحالات ، لا تحتاج إلى تكوين أي شيء لإكمال التشغيل الأول. الإعداد الوحيد الذي قد تحتاجه في البداية هو استبعاد مكتبات الطرف الثالث. بعد كل شيء ، ما زلت لن تقوم بتحرير أي شيء في الملفات المصدر ، على سبيل المثال ، مكتبة jpeg ، لذلك ليست هناك حاجة للتحقق منها. بالإضافة إلى ذلك ، سيؤدي استبعاد المجلدات الإضافية إلى تقليل وقت تحليل المشروع. يتم تعيين الأدلة المستثناة من التحليل هنا: PVS-Studio> خيارات ...> لا تحقق من الملفات> PathMasks (انظر الشكل 3).

الشكل 3. تحرير قائمة الدلائل التي لن يتحقق المحلل.

الشكل 3. تحرير قائمة الدلائل التي لن يتحقق المحلل.

إذا كان أحد الأسماء المحددة في المسار الكامل للملف ، فلن يتم إجراء التحليل. بشكل افتراضي ، يتم تضمين أسماء بعض الدلائل بالفعل في القائمة. ومع ذلك ، في مشروعك ، قد لا يُسمى المجلد الذي يحتوي على مكتبة ZLib "zlib" ، ولكن ، على سبيل المثال ، "zip_lib". لذلك ، يجب عليك تحرير هذه القائمة. لبدء التحرير ، انقر فوق الزر بثلاث نقاط.

أمثلة من الأقنعة الصالحة لقائمة PathMasks:

  • c: \ Libs \ - سيتم استبعاد جميع ملفات المشروع الموجودة في هذا المجلد والمجلدات الفرعية الخاصة به.
  • \ Libs \ أو * \ Libs \ * - سيتم استبعاد جميع الملفات الموجودة في الدلائل التي مسارها الذي يحتوي على المجلد الفرعي Libs. إذا لم يتم تحديد الأحرف "*" ، فسيظل إضافتها تلقائيًا ، لذلك يكون كلا خياري التسجيل متماثلين.
  • Libs أو * Libs * - سيتم استبعاد جميع الملفات ، المسار الذي يحتوي على مجلد فرعي يحتوي على "Libs" كاسم أو جزء من الاسم. أيضًا في هذه الحالة ، سيتم استبعاد الملفات التي تحتوي على Libs في الاسم ، على سبيل المثال ، c: \ project \ mylibs.cpp. لتجنب الالتباس ، نوصيك دائمًا باستخدام الخطوط المائلة.

بالإضافة إلى استبعاد المجلدات بأكملها ، يمكنك تحديد أقنعة لاستبعاد الملفات الفردية. لهذا ، هناك إعداد FileNameMasks. لمزيد من التفاصيل حول كيفية العمل مع قوائم الاستبعاد ، راجع الوثائق: الإعدادات: لا تحقق من الملفات .

التحقق من المشروع


عند الانتهاء من الإعدادات الأولية ، يمكنك البدء في التحقق من المشروع. يدعم PVS-Studio لـ Visual Studio التحقق من مشاريع C ++ (.vcxproj) و C # (.csproj). يمكنك أيضًا محاولة التحقق من حل يحتوي على مشاريع من هذه الأنواع بالكامل. للقيام بذلك ، حدد عنصر القائمة الامتدادات> PVS-Studio> فحص> حل (انظر الشكل 4).

الشكل 4. التحقق من الحل باستخدام محلل PVS-Studio.

الشكل 4. التحقق من الحل باستخدام محلل PVS-Studio.

إذا كانت هناك أي صعوبات في عملية التحقق ، نوصيك بالرجوع إلى قسم " لا يمكنك التحقق؟ " على موقعنا. هذه ليست جاهل "تحقق من أن المكونات في" أوعية. يصف القسم المواقف المعتادة التي اتصل بها المستخدمون وخيارات العمل المقترحة.

العمل مع قائمة الرسائل التشخيصية


بعد التحقق ، سيتم عرض جميع رسائل التشخيص في نافذة خاصة. نافذة لديها العديد من الضوابط. تعمل جميعها على إظهار تلك الرسائل التشخيصية التي تهم المستخدم تمامًا. ومع ذلك ، في البداية ، قد تبدو النافذة معقدة. دعونا نلقي نظرة على جميع الضوابط (انظر الشكل 5).

الشكل 5. نافذة مع رسائل التشخيص.

الشكل 5. نافذة مع رسائل التشخيص.

  1. في الواقع ، نافذة PVS-Studio.
  2. قائمة إضافية. يتيح لك الوصول إلى خيارات مثل: وضع علامة تحذير كاذبة ، إخفاء الرسائل ، إضافة ملفات إلى الاستثناءات (المزيد في هذا أدناه).
  3. يتضمن الزر رسالة "حدث خطأ ما". على سبيل المثال ، لا يمكنك إجراء معالجة مسبقة لأحد الملفات.
  4. انتقل إلى الرسالة السابقة / التالية. هذا يفتح الملف المقابل ، ويتم وضع المؤشر على الخط مع وجود خطأ محتمل. يمكنك أيضًا دائمًا تحديد التشخيصات من القائمة بالنقر المزدوج. يمكنك تعيين مفاتيح الاختصار للانتقال إلى الرسالة السابقة / التالية. بشكل افتراضي ، تكون Alt + '[' و Alt + ']'.
  5. الأزرار التي تتضمن تنبيهات على مستويات مختلفة. الآن يتم تضمين أول مستويين من التشخيص. في الوقت نفسه ، يتم عرض 90 تحذيرًا من المستوى الأول و 6700 تحذيرًا من المستوى الثاني في النافذة. يظهر مستوى الرسالة على الجانب الأيسر من النافذة ، في شكل شريط يتوافق مع لون الشريط على زر المستوى المقابل. لماذا هناك الكثير من الإيجابيات؟ من أين تحذيرات 6700؟ لإثبات قدرات الواجهة ، يتم تضمين مجموعة من قواعد MISRA ، وهو بطلان للتطبيقات العادية :).
  6. مجموعات نشطة من قواعد التشخيص. عام - التشخيص للأغراض العامة ، والتحسين - microoptimization ، 64 بت - 64 بت التشخيص ، MISRA - MISRA C و MISRA C ++ القياسية. الآن تعرض النافذة جميع أنواع التنبيهات.
  7. يعرض عدد الرسائل التي تحمل علامة "الإنذارات الكاذبة". يمكنك تمكين / تعطيل عرض الرسائل ذات العلامات في الإعدادات ، PVS-Studio> خيارات ...> إعدادات محددة للمحلل> عرض الإنذارات الكاذبة.
  8. مرشحات سريعة. على سبيل المثال ، يمكنك ترك الرسائل في القائمة فقط مع رمز V501 والموجودة في مشروع XYZ.
  9. تشير بعض التشخيصات إلى الانتباه ليس لأحد ، ولكن إلى عدة سطور. في هذه الحالة ، يظهر علامة القطع بجانب رقم السطر. بالنقر فوقه باستخدام الماوس ، يمكنك رؤية قائمة من الخطوط وتحديد أحدها.

ينقسم الجدول الذي يحتوي على رسائل تشخيصية إلى الأعمدة التالية:

  • المستوى. مستوى الموثوقية التي تم العثور على الخطأ. المستوى الأول (الأحمر) - أكثر الأماكن المشبوهة. المستوى الثالث (الأصفر) - على الأرجح خطأ بسيط في الكود.
  • النجمة. ليس لديها غرض محدد. يمكن للمستخدم تفسير ذلك حسب تقديره. على سبيل المثال ، قد يشير إلى التحذيرات الأكثر إثارة للاهتمام لمزيد من التحليل الدقيق. القياس هو تعليم الحروف بعلامة النجمة في برنامج بريد إلكتروني مثل Thunderbird أو Outlook.
  • ID. رقم الرسالة الفريدة. قد يكون مفيدًا عند العمل بقائمة كبيرة. على سبيل المثال ، يمكنك الانتقال إلى الرسالة برقم محدد (راجع عنصر "التنقل إلى المعرف ..." في قائمة السياق ).
  • التعليمات البرمجية. رمز الرسالة إذا قمت بالنقر فوقه بالماوس ، سيتم فتح صفحة تحتوي على وصف للتحذير.
  • CWE. يحدد تحذيرًا باستخدام كود CWE (تعداد الضعف العام). بالضغط على الرابط ، يمكنك رؤية وصف ل CWE على الشبكة.
  • ميسرا. كما ذكر أعلاه ، ولكن فقط لمعيار MISRA .
  • الرسالة. نص رسالة التشخيص.
  • المشروع. اسم المشروع (يمكنك تعطيل هذا العمود باستخدام قائمة السياق).
  • الملف. اسم الملف.
  • الخط. رقم الخط. ! المهم يرجى ملاحظة أنه بعد بعض الخطوط ، هناك علامة القطع. مثال: "123 (...)". بالضغط على هذا الرقم ، سوف تحصل على قائمة بجميع سطور الكود المتعلقة بهذه الرسالة. في هذه الحالة ، من الممكن الانتقال إلى كل سطر في القائمة.

نعم ، كانت قراءة كل هذا متعبة. ومع ذلك ، أؤكد لك أنك بدأت استخدامه ، وسرعان ما أصبحت مرتاحًا للأداة. ونادراً ما تضغط على شيء لتكوينه.

قائمة السياق


لذلك ، بالنقر المزدوج على الرسالة ، انتقل إلى جزء الشفرة المطلوب. عن طريق الضغط على زر الماوس الأيمن ، يتم فتح قائمة السياق.

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

ومع ذلك ، أريد أن أتطرق إلى ميزة واحدة مفيدة للغاية. تذكر أنه في الإعدادات يمكنك إضافة مجلدات / ملفات للاستبعاد (انظر الشكل 2). لذلك ، إضافة شيء أسهل بكثير مما يبدو!

انتبه إلى العنصر "عدم التحقق من الملفات وإخفاء جميع الرسائل من ...". عند النقر فوقه ، يمكن إضافة قائمة بالمسارات التي يمكن إضافتها إلى الاستثناء (انظر الشكل 6).

الشكل 6. باستثناء الملفات من المسح.


الشكل 6. باستثناء الملفات من المسح.

يمكنك تحديد ملف واحد أو أحد الأدلة. يوضح الشكل أنه تم تحديد المجلد "SDL2-2.0.9 \ src \ haptic \ windows". هذا يعني أن جميع الملفات في هذا المجلد وجميع المجلدات الفرعية سيتم استبعادها من التحليل. علاوة على ذلك ، فإن جميع الرسائل المتعلقة بهذه الملفات ستختفي على الفور من القائمة. مريح جدا لا تحتاج إلى إعادة تشغيل التحليل لإزالة جميع الرسائل المتعلقة بالاختبار.

وضع التحليل التزايدي


ستكون مقدمة برنامج PVS-Studio غير مكتملة إذا لم تتحدث عن واحدة من أهم الميزات - تحليل الكود الإضافي .

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

عند العثور على خطأ ، تظهر نافذة منبثقة تحذر من الخطر (انظر الشكل 7).

الشكل 7. تم العثور على رسالة منبثقة تفيد بوجود أماكن مشبوهة في الملفات التي تم تحريرها.

الشكل 7. تم العثور على رسالة منبثقة تفيد بوجود أماكن مشبوهة في الملفات التي تم تحريرها.

إذا نقرت على الأيقونة ، فسيتم فتح IDE كنتيجة للتحقق من المشروع (انظر الشكل 2) وسيكون من الممكن فحص شظايا الشفرة المشبوهة.

في الحقيقة ، بدلاً من وصف هذا الوضع ، من الأسهل محاولة التعامل معه. تكتب الرمز كما كان من قبل. وإذا لزم الأمر ، فإن محلل يزعجك. جربه!

نحن أنفسنا باستمرار استخدام هذا الوضع. نعم ، نرتكب أيضًا أخطاء في بعض الأحيان. والقدرة على إصلاحها على الفور تقلل إلى حد كبير من الوقت لاكتشاف عيب ومحاولة لفهم لماذا لا يتصرف البرنامج كما هو مخطط لها. من العار قضاء 15-20 دقيقة في تصحيح الأخطاء ، ثم العثور على خطأ مطبعي في الفهرس. إليك إحدى الحالات التي عثر فيها PVS-Studio على خطأ في PVS-Studio مباشرة بعد ظهورها في التعليمات البرمجية:

if (in[0] == '\\' && in[1] == '.' && in[1] == '\\') { in += 2; continue; } 

لكن هذه ، بالطبع ، هي الزهور. يمكن أن يكون محلل PVS-Studio أكثر فائدة في بعض الأحيان. فيما يلي أحد المراجعات حول محللنا: " مثال على استخدام محلل ثابت ". النص يجعلك تفكر.

أنا ألخص. التحليل التدريجي هو شيء يجب أن تجربه بالتأكيد. سوف تحبه بمجرد العثور على بعض الأخطاء في التعليمات البرمجية الجديدة.

ميزات PVS-Studio


لنكن مختصرين. يستحيل وصف جميع التشخيصات المتوفرة في PVS-Studio بإيجاز. يمكن العثور على قائمة كاملة بالتشخيص ووصفها التفصيلي في الوثائق: وصف الأخطاء التي تم تشخيصها . نحن نقصر أنفسنا على جدول يتم فيه تجميع التشخيصات حسب النوع. يتم تضمين بعض التشخيصات في أكثر من مجموعة. الحقيقة هي أن الانقسام تعسفي للغاية. على سبيل المثال ، يمكن أن يؤدي الخطأ المطبعي إلى استخدام ذاكرة غير مهيأة. على العكس من ذلك ، لم تجد بعض الأخطاء مكانًا في الجدول ؛ فهي محددة للغاية. ومع ذلك ، فإن الجدول ككل يعطي فكرة عن وظيفة محلل الكود الثابت (انظر الشكل 8).

الشكل 8. ميزات PVS-Studio.

الشكل 8. ميزات PVS-Studio.

كما ترون ، يظهر المحلل نفسه قدر الإمكان في مجالات مثل البحث عن الأخطاء التي حدثت بسبب الأخطاء المطبعية ، Copy-Paste. يقوم بتشخيص المشكلات المتعلقة بأمان التعليمات البرمجية.

يمكنك معرفة كيف يعمل كل هذا في الممارسة العملية من خلال النظر في قاعدة بيانات الخطأ . نجمع في قاعدة البيانات هذه جميع الأخطاء التي وجدناها عن طريق التحقق من مختلف مشاريع المصادر المفتوحة.

كبار المستشارين


PVS-Studio هي أداة لاختبار أمان التطبيق الثابت (SAST) - يمكن للمحلل تحديد نقاط الضعف المحتملة في رمز المشروع وإظهار معرف الخطأ المقابل في تصنيف معين.

يدعم PVS-Studio تصنيفات الخطأ التالية:

  1. CWE
  2. SEI CERT
  3. ميسرا

يمكنك تمكين عرض رموز CWE باستخدام قائمة السياق في نافذة محلل ضمن إظهار الأعمدة> CWE

الشكل 9. قائمة السياق ومثال على إخراج رموز CWE.

الشكل 9. قائمة السياق ومثال على إخراج رموز CWE.

أو في القائمة أعلاه (ملحقات> PVS-Studio> عرض رموز CWE في نافذة الإخراج)

الشكل 10. قائمة التمديد.

الشكل 10. قائمة التمديد.

يتم تضمين تشخيصات MISRA بشكل منفصل في الإعدادات:

الشكل 11. قائمة الأخطاء المكتشفة.

الشكل 11. قائمة الأخطاء المكتشفة.

اقرأ المزيد عن هذه التصنيفات هنا .

التحقق من المشاريع من سطر الأوامر


PVS-Studio_Cmd.exe أداة مساعدة للتحقق من مشاريع C ++ / C # Visual Studio (.vcxproj / .csproj) وحلول .sln من سطر الأوامر. يمكن أن تكون مفيدة لأتمتة التحليل. يوجد البرنامج في الدليل الذي تم إجراء التثبيت فيه - بشكل افتراضي هو "C: \ Program Files (x86) \ PVS-Studio".

يحتوي البرنامج على العديد من المعلمات ، لكننا نحتاج أولاً إلى 3 منها فقط:

  • - الهدف: ملف المشروع أو الحل الذي سيتم التحقق منه.
  • - الإخراج: ملف plog حيث تريد كتابة التقرير.
  • - التقدم: إظهار تقدم التحقق.

هذا ما سيبدو عليه الإطلاق:

الشكل 12. إخراج برنامج PVS-Studio_Cmd.exe

الشكل 12. إخراج برنامج PVS-Studio_Cmd.exe

بعد التنفيذ ، سوف نحصل على ملف plog مع التقرير ، المسار الذي حددناه في خيارات التشغيل. يمكن تحويل هذا التقرير إلى تنسيقات أخرى باستخدام الأداة المساعدة PlogConverter.exe ، ولعرض التقرير في IDE ، فقط انقر نقرًا مزدوجًا على ملف plog في Explorer.

يمكنك أيضًا فتح ملف التقرير في قائمة الامتدادات ضمن الإضافات> PVS-Studio> فتح / حفظ> فتح تقرير التحليل ...

صورة 4


يمكن العثور على معلومات مفصلة حول الأداة المساعدة ومعلماتها في الوثائق .

قمع التحذيرات الخاطئة


بعض الرسائل التي يصدرها المحلل ستكون حتما خاطئة. لا شيء يمكن القيام به حيال ذلك. المحلل الثابت هو مجرد برنامج لا يحتوي على ذكاء اصطناعي ولا يمكنه تحديد ما إذا كان قد وجد خطأً حقيقياً أم لا.

لمكافحة ايجابيات كاذبة ، يقدم المحلل مجموعة من الآليات المختلفة. يتم وصفها بالتفصيل في الأقسام التالية من الوثائق:


استنتاج


بالطبع ، هنا لم نخبر كل شيء عن الصك. إذا أخبرت كل شيء ، فستتحول المقالة إلى وثائق. كان الهدف هو إظهار مدى سهولة العمل مع الأداة داخل بيئة Visual Studio. يمكنك أن تقرأ عن البيئات الأخرى وأنماط التشغيل في الوثائق والمقالات الأخرى الموجودة على موقعنا. هناك ، بالمناسبة ، الكثير من الأشياء المثيرة للاهتمام للمبرمجين. تعال يهيمون على وجوههم.

تجدر الإشارة إلى أن PVS-Studio لا يعمل فقط في البيئة من Microsoft. نحن ندعم أيضًا لغة Java ، ويمكننا العمل على نظامي Linux و macOS ، والاندماج في CMake والمزيد. لمزيد من المعلومات ، راجع الوثائق .

أتمنى لك رمزًا خاليًا من الشفرات وآمل أن تستمتع بـ PVS-Studio. إذا كانت لديك أي أسئلة ، فسوف نساعدك دائمًا ونخبرك بذلك. اكتب لنا

موارد إضافية:


  1. مراجعة الكود
  2. تحليل كود ثابت .
  3. أدوات تحليل الشفرة الثابتة .
  4. SAST .
  5. التقنيات المستخدمة في محلل PVS-Studio .
  6. قم بتنزيل PVS-Studio وجربه .
  7. دعم لبرنامج Visual Studio 2019 .
  8. ناقش سعر محلل PVS-Studio لفريقك وكيفية شرائه: اشتري PVS-Studio .
  9. مثال على استخدام محلل ثابت .
  10. إجابات على الأسئلة المتداولة في المؤتمرات.
  11. كيفية بدء تشغيل PVS-Studio Java
  12. كيفية تشغيل PVS-Studio على لينكس وماك



إذا كنت ترغب في مشاركة هذه المقالة مع جمهور يتحدث الإنجليزية ، فالرجاء استخدام الرابط الخاص بترجمة: Sergey Larin. PVS- ستوديو لبرنامج Visual Studio

Source: https://habr.com/ru/post/ar458070/


All Articles