Ukukhutshwa kwe-cppcheck 2.6, i-static code analyzer ye-C ++ kunye neelwimi ze-C

Inguqulelo entsha ye-cppcheck 2.6 static code analyzer ikhutshiwe. Ifumanisa iindidi ezahlukeneyo zeempazamo kwikhowudi ye-C kunye ne-C++, kuquka ezo zisebenzisa i-syntax engeyiyo eqhelekileyo yeenkqubo ezifakwe ngaphakathi. Ingqokelela yee-plugins iyafumaneka evumela ukuhlanganiswa kwe-cppcheck neenkqubo ezahlukeneyo zophuhliso, ukuhlanganiswa okuqhubekayo, kunye neenkqubo zokuvavanya, kunye neempawu ezifana nokujonga isitayile sekhowudi. Zombini i-native parser kunye ne-external Clang parser zingasetyenziselwa uhlalutyo lwekhowudi. Le phakheji ikwabandakanya iskripthi se-donate-cpu.py sokubonelela ngezixhobo zasekuhlaleni zokujonga ikhowudi yephakheji ngokubambisana. DebianIkhowudi yomthombo weprojekthi isasazwa phantsi kwelayisenisi yeGPLv3.

Ukuphuhliswa kwe-cppcheck kugxininise ekuchongeni iingxaki ezinxulumene nokuziphatha okungachazwanga kunye nokusetyenziswa koyilo oluyingozi kwimbono yokhuseleko. Injongo kwakhona kukunciphisa iimpawu zobuxoki. Phakathi kweengxaki ezichongiweyo: izikhombisi kwizinto ezingekhoyo, ulwahlulo ngo-zero, ukuphuphuma kwenani elipheleleyo, ukusebenza kwe-bit shift engachanekanga, uguqulo olungachanekanga, iingxaki xa usebenza ngememori, usetyenziso olungachanekanga lwe-STL, i-null pointer dereferences, ukusetyenziswa kweetshekhi emva kofikelelo lokwenene. kwi-buffer, i-buffer overruns , ukusetyenziswa kwezinto eziguquguqukayo ezingaqaliswanga.

Kwinguqulelo entsha:

  • Olu vavanyo lulandelayo longezwe kwi-analyzer core:
    • ukungabikho komsebenzisi wokubuyisela kwiqumrhu lomsebenzi;
    • iirekhodi ezidlulayo idatha, imisela indlela yokuziphatha engachazwanga;
    • ixabiso elithelekiswayo lingaphandle komelo lwexabiso lohlobo;
    • usetyenziso lwekopi alusebenzi ekubuyiseni i-std::hambisa(yendawo);
    • ifayile ayikwazi ukuvulwa ngaxeshanye ukufunda nokubhala kwimijelo eyahlukeneyo (umsinga);
  • kwiiplatifti ze-Unix, inkxaso eyongeziweyo yokubonisa imiyalezo yokuxilonga ngemibala eyahlukeneyo;
  • uhlalutyo olongezelelekileyo lomfuziselo weValueFlow. Isebenzisa i-delta elula xa ubala umahluko phakathi kwezinto ezimbini ezingaziwayo;
  • imithetho esetyenziswa kuluhlu lweempawu "zichaza" zinokutshatisa #include;
  • ithegi yethala leencwadi ngoku ingaqulatha ithegi , kwaye ngokufanelekileyo imisebenzi yasimahla, enokwamkela izikhongozeli ezifana ne-std::ubungakanani, std::engenanto, std::qala, std::end, njl. ingachaza i-yeld okanye inyathelo lezixhumanisi;
  • ithegi yethala leencwadi ngoku ingaqulatha ithegi izikhombisi ezihlakaniphile ezinobunikazi obukhethekileyo. Isilumkiso ngoku sikhutshiwe malunga neembekiselo ezijingayo kwezi ntlobo zezalathisi ezikrelekrele;
  • iingxaki ezilungisiweyo ngokusetyenzwa kwe--cppcheck-build-dir parameter;
  • Ingxelo ye-html ngoku ingabonisa ulwazi malunga nombhali (usebenzisa i-git blame);
  • izilumkiso ezongeziweyo malunga nezinto eziguquguqukayo ezingatshintshiyo, kodwa ezinokuba;
  • Iimpazamo eziqokelelweyo kunye neentsilelo ze-analyzer zilungisiwe.

Ukongezelela, iitshekhi ezivela kwi-Misra C 2012, kuquka i-Amendment 1 kunye ne-Amendment 2, ziphunyezwe ngokupheleleyo, ngaphandle kwemigaqo 1.1, 1.2 kunye ne-17.3. Iitshekhi 1.1 no-1.2 maziqhutywe ngumqambi. Ukuqinisekiswa kwe-17.3 kunokwenziwa ngumqokeleli onjenge-GCC.

umthombo: opennet.ru

Thenga ukusingathwa okuthembekileyo kwiindawo ezinokhuseleko lweDDoS, iiseva zeVPS VDS 🔥 Thenga ukusingathwa kwewebhusayithi okuthembekileyo ngokhuseleko lwe-DDoS, iiseva zeVPS VDS | ProHoster