سي پي پي چيڪ 2.6 جو رليز، سي ++ ۽ سي ٻولين لاءِ جامد ڪوڊ اينالائيزر

جامد ڪوڊ اينالائيزر cppcheck 2.6 جو نئون ورزن جاري ڪيو ويو آھي، جيڪو توھان کي اجازت ڏئي ٿو مختلف طبقن جي غلطين کي سڃاڻڻ جي ڪوڊ ۾ C ۽ C++ ٻولين ۾، بشمول غير معياري نحو استعمال ڪرڻ وقت، عام طور تي شامل ٿيل سسٽم لاءِ. پلگ ان جو هڪ مجموعو مهيا ڪيو ويو آهي جنهن جي ذريعي cppcheck مختلف ترقي، مسلسل انضمام ۽ ٽيسٽنگ سسٽم سان ضم ٿيل آهي، ۽ پڻ اهڙيون خاصيتون مهيا ڪري ٿي جيئن ڪوڊ جي طرز سان ڪوڊ تعميل کي جانچڻ. ڪوڊ کي پارس ڪرڻ لاءِ، توھان استعمال ڪري سگھوٿا يا ته پنھنجو پنھنجو پارسر يا ڪلانگ مان خارجي پارسر. ان ۾ پڻ شامل آهي donate-cpu.py اسڪرپٽ مقامي وسيلا مهيا ڪرڻ لاءِ ڊيبين پيڪيجز لاءِ تعاون واري ڪوڊ جو جائزو وٺڻ لاءِ. پروجيڪٽ جو سورس ڪوڊ GPLv3 لائسنس تحت ورهايو ويو آهي.

سي پي پي چيڪ جي ترقي اڻڄاتل رويي سان لاڳاپيل مسئلن جي نشاندهي ڪرڻ ۽ ڊزائينز جي استعمال تي مرکوز آهي جيڪي حفاظتي نقطي نظر کان خطرناڪ آهن. مقصد پڻ غلط مثبت کي گهٽائڻ آهي. نشاندهي ڪيل مسئلن ۾: غير موجود شيون ڏانهن اشارو، صفر طرفان ڊويزن، انٽيجر اوور فلوز، غلط بٽ شفٽ آپريشن، غلط تبديليون، مسئلا جڏهن ميموري سان ڪم ڪرڻ، STL جو غلط استعمال، null pointer dereferences، حقيقي رسائي کان پوء چيڪن جو استعمال بفر ڏانهن، بفر اووررن، غير شروع ٿيل متغيرن جو استعمال.

نئين نسخي ۾:

  • ھيٺيون چيڪ شامل ڪيا ويا آھن تجزيي ڪندڙ ڪور ۾:
    • فنڪشن جسم ۾ واپسي آپريٽر جي غير موجودگي؛
    • اوورليپنگ ڊيٽا کي رڪارڊ ڪري ٿو، اڻ ڄاڻايل رويي کي طئي ڪري ٿو؛
    • قدر جو مقابلو ڪيو پيو وڃي قسم جي قدر جي نمائندگي کان ٻاهر آهي.
    • ڪاپي جي اصلاح واپسي تي لاڳو ناهي std::move(local);
    • فائل مختلف اسٽريم (اسٽريم) ۾ پڙهڻ ۽ لکڻ لاءِ هڪ ئي وقت نه کولي سگهجي ٿي؛
  • يونڪس پليٽ فارمن لاءِ، مختلف رنگن ۾ تشخيصي پيغامن کي ڏيکارڻ لاءِ شامل ڪيل سپورٽ؛
  • ValueFlow لاءِ شامل ڪيل علامتي تجزيو. ٻن نامعلوم متغيرن جي وچ ۾ فرق جي حساب سان سادي ڊيلٽا استعمال ڪري ٿو؛
  • ٽوڪن جي فهرست لاءِ استعمال ڪيل ضابطا "define" پڻ ملن ٿا #include؛
  • لائبريري ٽيگ ھاڻي ٽيگ تي مشتمل ٿي سگھي ٿو ، ۽ ان مطابق مفت افعال، جيڪي قبول ڪري سگھن ٿا ڪنٽينرز جهڙوڪ std::size، std:: empty، std::begin، std::end، وغيره. ڳنڍيندڙن لاءِ يلڊ يا عمل بيان ڪري سگھي ٿو؛
  • لائبريري ٽيگ ھاڻي ٽيگ تي مشتمل ٿي سگھي ٿو سمارٽ پوائنٽرز لاءِ جن وٽ منفرد ملڪيت آهي. انهن قسمن جي سمارٽ پوائنٽرز جي حوالي سان خطرناڪ حوالن جي باري ۾ هاڻي خبردار ڪيو ويو آهي.
  • -cppcheck-build-dir پيٽرول جي پروسيسنگ سان حل ٿيل مسئلا؛
  • htmlreport هاڻي ليکڪ جي باري ۾ معلومات ڏيکاري سگهي ٿو (گٽ الزام استعمال ڪندي)؛
  • وڌايل ڊيڄاريندڙن بابت متغير جيڪي مستقل نه آهن، پر ٿي سگهن ٿيون؛
  • تجزيه نگار جون جمع ٿيل غلطيون ۽ خاميون درست ڪيون ويون آهن.

اضافي طور تي، Misra C 2012 جا چيڪ، بشمول ترميم 1 ۽ ترميم 2، مڪمل طور تي لاڳو ڪيا ويا آهن، سواءِ قاعدن 1.1، 1.2 ۽ 17.3 جي. چيڪ 1.1 ۽ 1.2 لازمي طور تي ڪمپلر طرفان انجام ڏنو وڃي. تصديق 17.3 هڪ ڪمپيلر طرفان ڪري سگهجي ٿو جهڙوڪ GCC.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو