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

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