Cppcheck 2.6нын жаңы версиясы буга чейин чыгарылган жана бул анын жаңылыктары

Бошотуу статикалык код анализаторунун версиясы cppcheck 2.6, Que C жана C ++ коддорундагы ар кандай каталарды табууга мүмкүндүк береткамтылган системаларга мүнөздүү стандарттуу эмес синтаксисти колдонгондо да.

Плагиндердин жыйнагы камсыздалат, анын жардамы менен cppcheckтин ар кандай өнүгүү, үзгүлтүксүз интеграция жана тест системалары, ошондой эле коддоо стилине коддун шайкештигин текшерүү сыяктуу өзгөчөлүктөр камтылган.

Кодду талдоо үчүн, сиз өзүңүздүн талдоочуңузду жана тышкы Clang талдоочусун колдоно аласыз. Ал ошондой эле Debian пакеттери үчүн кодду биргелешип карап чыгуу үчүн жергиликтүү ресурстарды берүү үчүн donate-cpu.py скриптин камтыйт.

Cppcheck иштеп чыгуу аныкталбаган жүрүм -турум менен байланышкан көйгөйлөрдү аныктоого багытталган жана коопсуздук жагынан коркунучтуу болгон конструкцияларды колдонуу.

Максат - жалган позитивдерди азайтуу. Аныкталган көйгөйлөрдүн арасында: жок объектилерге көрсөткүчтөр, нөлгө бөлүү, бүтүн суунун толушу, туура эмес бит которуу операциялары, туура эмес конверсиялар, эс тутум көйгөйлөрү, STLдин туура эмес колдонулушу, нөлдүк көрсөткүчтөрдү жокко чыгаруу, буферге реалдуу кирүүдөн кийин текшерүүлөрдү колдонуу. , буфердик чектерден ашып, башталбаган өзгөрмөлөрдү колдонуу.

Cppcheck 2.6дин негизги жаңы функциялары

Бул жаңы нускасындаe талдоочунун ядросуна ар кандай текшерүүлөрдү коштуБулардын арасында функциялардын корпусунда декларациянын жоктугун текшерүү, ошондой эле бири -бирине дал келбеген маалымат жазуулары, аныкталбаган жүрүм -турум аныктамалары, ошондой эле салыштырылып жаткан маанини текшерүү өкүлчүлүктүн чегинен тышкары турат. түрүнүн мааниси.

Дагы бир жаңылык - бул көчүрүү оптимизациясы std :: move (local) кайтарууга колдонулбайт;, плюс колдоо Unix платформалары үчүн диагностикалык билдирүүлөрдү ар кандай түстө көрсөтүү үчүн кошулган жана китепкана теги азыр тегди камтышы мүмкүн уникалдуу касиетке ээ болгон акылдуу көрсөткүчтөр үчүн. Dangling link эскертүүсү азыр акылдуу көрсөткүчтөрдүн бул түрүнө берилет.

Мындан тышкары, Misra C 2012 көзөмөлү толугу менен ишке ашырылган, анын ичинде 1, 2 жана 1.1 эрежелерин кошпогондо, 1.2 -түзөтүү жана 17.3 -түзөтүү. Компилятор 1.1 жана 1.2 текшерүүлөрдү аткарышы керек. GCC сыяктуу компилятор 17.3 текшере алат.

Көзгө урунган башка өзгөрүүлөрдүн ичинен ушул жаңы версиянын:

  • Файлды ар кандай агымда окуу жана жазуу үчүн бир убакта ачуу мүмкүн эмес;
  • ValueFlow үчүн символикалык анализ кошулду. Жөнөкөй дельта эки белгисиз өзгөрмөнүн айырмасын эсептөөдө колдонулат;
  • "Аныктоо" токендер тизмеси үчүн колдонулган эрежелер #include менен дал келиши мүмкүн;
  • Китепкана теги азыр тегди камтышы мүмкүн Ошентип, std :: size, std :: empty, std :: begin, std :: end сыяктуу контейнерлерди кабыл ала турган бекер функциялар. контейнерлер үчүн иштөө же аракетти көрсөтсөңүз болот;
  • –Cppcheck-build-dir параметрин иштетүүдө көйгөйлөр чечилди;
    htmlreport эми автор жөнүндө маалыматты басып чыгара алат (git айыптоо аркылуу);
  • Туруктуу эмес, бирок туруктуу болуп калышы мүмкүн болгон өзгөрмөлөр боюнча эскертүүлөрдү узартуу;
  • Топтолгон анализатордун мүчүлүштүктөрү жана кемчиликтери жоюлду.

Акыр -аягы, эгер сиз бул жаңы версия жөнүндө көбүрөөк билгиңиз келсе, кеңешиңизге болот толук маалыматты төмөнкү шилтемеде.

Linux боюнча cppcheckти кантип орнотсо болот?

Linux бөлүштүрүүсүнө cppcheck орнотууга кызыкдар болгондор, биз төмөндө бөлүшкөн көрсөтмөлөрдү аткара алышат.

Эгерде сиз Debian колдонуучусу болсоңуз же Deepin же Ubuntu сыяктуу башка дистрибьютор болсоңуз, анда төмөнкү буйрукту терүү менен терминалдан түз орното аласыз:

sudo apt-get install cppcheck

Эми Fedora колдонуучулары жана андан алынгандар үчүн, алар төмөнкү буйрукту терүү менен орнотууну аткара алышат:

sudo yum instalar cppcheck

Же Arch Linux колдонуучулары же анын башка туундулары болгондор үчүн алар төмөнкү буйрук менен орното алышат:

sudo pacman -S cppcheck


Макаланын мазмуну биздин принциптерге карманат редакциялык этика. Ката жөнүндө кабарлоо үчүн чыкылдатыңыз бул жерде.

Комментарий биринчи болуп

Комментарий калтырыңыз

Сиздин электрондук почта дареги жарыяланбайт. Милдеттүү талаалар менен белгиленет *

*

*

  1. Маалыматтар үчүн жооптуу: Мигель Анхель Гатан
  2. Маалыматтын максаты: СПАМды көзөмөлдөө, комментарийлерди башкаруу.
  3. Мыйзамдуулук: Сиздин макулдугуңуз
  4. Маалыматтарды берүү: Маалыматтар үчүнчү жактарга юридикалык милдеттенмелерден тышкары билдирилбейт.
  5. Маалыматтарды сактоо: Occentus Networks (ЕС) тарабынан уюштурулган маалыматтар базасы
  6. Укуктар: Каалаган убакта маалыматыңызды чектеп, калыбына келтирип жана жок кыла аласыз.