Вышла новая версия статического анализатора кода cppcheck 2.6, позволяющего выявлять различные классы ошибок в коде на языках Си и Си++, в том числе при использовании нестандартного синтаксиса, типичного для встраиваемых систем. Предоставляется коллекция плагинов, через которые обеспечена интеграция cppcheck с различными системами разработки, непрерывной интеграции и тестирования, а также предоставлены такие возможности как проверка соответствия кода стилю оформления кода. Для разбора кода может применяться как собственный парсер, так и внешний парсер от Clang. В состав также входит скрипт donate-cpu.py для предоставления локальных ресурсов для выполнения работы по совместной проверке кода пакетов Debian. Исходные тексты проекта распространяются под лицензией 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
