نرحب بأي الدردشة على جودة رمز. عملائنا ، الطلاب والمستخدمون الآخرون من جميع أنحاء الإنترنت يكتبون إلينا. بغض النظر عن البلد أو المنطقة الزمنية أو اللغة. حسنًا ، لغة التحدث ، وليس البرمجة. بين لغات البرمجة ، نحن مهتمون حتى الآن بمجموعة محدودة. الآن ، هي C و C ++ و C # و Java. هناك العديد من الفوائد من التواصل. ننفذ اقتراحات بعض المستخدمين على الفور ، لأنها مفيدة حقًا. غالبًا ما نمد يدنا بمشروع شخص ما من خلال شرح تحذيرات المحللين ، والتي تنتهي في النهاية إلى أخطاء. هذه المذكرة هي عن مثل هذه الحالة.
حول محلل
PVS-Studio هي أداة مصممة للكشف عن الأخطاء ونقاط الضعف المحتملة في التعليمات البرمجية المصدر للبرامج ، مكتوبة بلغات C و C ++ و C # و Java. إنه يعمل في بيئة Windows و Linux و macOS.
هناك ثلاثة استمارات للتواصل معنا:
- ردود الفعل
- طلب محاكمة
- طلب السعر
ليلة الخميس
مستخدم نشط قام بتجربة المحلل على الكود الخاص به بدأ في إرسال تحذيرات خاطئة. قبل أن أتمكن من الإجابة ، كانت هناك بالفعل 3 رسائل بريد إلكتروني. كانت نهاية يوم العمل وكنت متعبا (أتحدث عن مسألة موثوقية المراجعة اليدوية للكود). كان فريقنا يستعد بنشاط لإطلاق سراح شديد ، والذي كان على بعد أيام قليلة.
قررت الإجابة يوم الجمعة أو حتى خلال الأسبوع التالي:
مرحبا قسنطينةسنراجع تحذيراتك. الأسبوع القادم سأعلق على الأماكن المشبوهة :-)هذه الملاحظة تدور حول فعالية تحليل الشفرة الثابتة. ستكون المراجعة اليدوية للكود أدنى من الفحص التلقائي في العديد من الحالات ، خاصة في نهاية اليوم.
بعد إذن المستخدم ، سأذكر لك رسائلنا:
البريد الإلكتروني 1تحذيرات V712 إيجابية كاذبة:uint32_t StartUpCounter = 0, HSEStatus = 0; RCC->CR |= ((uint32_t)RCC_CR_HSEON); { HSEStatus = RCC->CR & RCC_CR_HSERDY; StartUpCounter++; } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));
البريد الإلكتروني 2V715 كاذبة إيجابية لنفس الشظية: {
البريد الإلكتروني 3القطط المقدسة ، مثل هذا المكان المسكون! يشكو المحلل من نفس الجزء (انظر الكود من رسائل البريد الإلكتروني السابقة):V560 جزء من التعبير الشرطي صحيح دائمًا: (StartUpCounter! = ((Uint16_t) 0x5000)). lpmode.cpp 356V776 حلقة لا نهائية محتملة. المتغير في شرط خروج الحلقة 'HSEStatus == 0' لا يغير قيمته بين التكرارات. lpmode.cpp 356ربما لا أحصل على شيء؟ لكن في الممارسة العملية ، كل شيء يعمل ، وإذا لم يبدأ الكوارتز ، فإننا نخرج من هذا الجزء عند انتهاء المهلة ؛-)البريد الإلكتروني 4 (الرد)مرحبا قسنطينةسنراجع تحذيراتك. الأسبوع القادم سأعلق على الأماكن المشبوهة :-)البريد الإلكتروني 5اللعنة! فقط بعد بريدك الإلكتروني ، لاحظت أن العبارة "do" قد فاتتها ... أخيرًا ، سقطت جميعها في أخدود! يبدو أنني فقدت تماما عيني الحدة ٪)افعل {...} بينما (...) ؛استنتاج
كما لاحظت ، كانت هناك 4 تحذيرات من محلل للجزء نفسه ، ولكن لا يزال يلزم بعض الوقت لإقناع المستخدم بأن هناك خطأ. في مثل هذه الحالة ، لن تحصل المراجعة اليدوية على فرصة.
قصة مماثلة مع نهاية سعيدة: "
كيف أثبت PVS-Studio أن يكون أكثر انتباهاً من ثلاثة ونصف مبرمجين "
استخدم أجهزة التحليل الثابتة في مشروعك. لا تحل محل مراجعة الكود مع الزملاء ، ولكنها تضيف دعمًا لمراقبة جودة الكود.