PVS-Studio: محرك التقدم

الشكل 1

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

PVS-Studio هو محلل أكواد ثابت للكشف عن الأخطاء ونقاط الضعف المحتملة في الكود المصدري للبرامج ، مكتوب بلغات C و C ++ و C # و Java.

لتعميم منهجية تحليل الشفرة الثابتة وأداتنا ، نكتب مقالات عن عمليات فحص المشروعات المفتوحة المختلفة. بالإضافة إلى ذلك ، نتحقق من المترجمين المختلفين مرة واحدة كل فترة. على سبيل المثال ، قمنا باختبار وجود أخطاء في مشاريع مثل: GCC و LLVM و PascalABC.NET و Roslyn.

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

بالإضافة إلى المترجمين C ++ ، بدأ المحللون C # أيضًا في تبني أفكار تشخيصاتنا. مما يعني أن محلل C # ، الذي تم تنفيذه في PVS-Studio ، أصبح نجماً آخر! من الرائع والرائع أن تكون على دراية بها.

في هذه الحالة ، يمكنني تتبع كيف حدث ذلك ، دعنا نقول ، في الوقت الحقيقي. في 13 أغسطس ، 2019 ، نشرنا مقالة كبيرة حول التحقق من .NET Core Libraries (CoreFX). من بين أشياء أخرى ، توضح هذه المقالة نمط خطأ يتعلق باستخدام سلاسل محرف (انظر التشخيص V3138 ). اهتم مطورو CoreFX بمنشورنا وبدأوا في تصحيح الأخطاء التي وجدناها. وفي 14 آب (أغسطس) ، توصلوا إلى الأخطاء التي وجدناها ذات صلة بهذه السلاسل المحرفية للغاية: إصلاح عدد قليل من الدولارات المفقودة لاستكمال السلسلة في التتبع .

هنا يبدأ الجزء الأكثر إثارة للاهتمام. في ذلك اليوم بالذات ، ظهرت مهمة جديدة في مشروع Roslyn Analyzers حول تنفيذ " قاعدة جديدة: سلاسل محرفة مفقودة للحرف الخاصة بالدولار # 2767 " ، ذات صلة بالحق في الأخطاء ، تم إصلاحها في CoreFX. نحن سعداء للغاية لأن جهودنا كانت مفيدة لمطوري CoreFX وأصبحت التشخيصات التي نقدمها نموذجًا يحتذى به بالنسبة لمطوري Roslyn Analyzers. من المؤسف بعض الشيء أن أداة PVS-Studio لم يتم ذكرها في أي مكان في المناقشة. يبدو كما لو أنهم عثروا على هذه الأخطاء وتوصلوا إلى فكرة إجراء التشخيص بأنفسهم. بالطبع ، سنكون ممتنين إذا ذكرنا كمصدر أصلي. حسنا ، هذا جيد.

لماذا قررنا أن نكتب عن كل هذا؟ نحن سعداء للغاية ونحن فخورون بأنفسنا! من خلال دراسة تجربتنا ، يقوم مترجمون آخرون بتطبيق تشخيصات جديدة ، مما يحسن جودة البرامج المطورة ككل. أنا أفهم أننا لسنا الوحيدين الذين يؤثرون على تطوير قدرات المترجم في اكتشاف الأخطاء. ومع ذلك ، يسرنا أن نعرف أننا نساهم في هذه العملية.

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

  • دعم سريع وعالي الجودة (فقط المبرمجون يستجيبون للبريد) ؛
  • التكامل مع Visual Studio و IntelliJ IDEA و SonarQube و Jenkins و IncrediBuild ؛
  • القدرة على استخدام الأداة محلياً وفي السحابة (Docker، Travis CI) ؛
  • أدوات لدمج التحليل في المشاريع القديمة الكبيرة (قمع الكتلة) ؛
  • وثائق مفصلة مع أمثلة لكل نمط خطأ.
  • آلية إرسال الرسائل إلى المطورين (BlameNotifier) ​​؛
  • مترجم يعمل الرصد (رصد مترجم) ؛
  • و هكذا.

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

روابط إضافية:

  1. PVS- ستوديو الرسم البياني لتطوير القدرات التشخيصية .
  2. التقنيات المستخدمة في محلل كود PVS-Studio للعثور على الأخطاء ونقاط الضعف المحتملة .

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


All Articles