Rilaxx ta 'cppcheck 2.6, analizzatur tal-kodiċi statiku għal-lingwi C++ u C

Ġiet rilaxxata verżjoni ġdida tal-analizzatur tal-kodiċi statiku cppcheck 2.6. Dan jidentifika diversi klassijiet ta' żbalji fil-kodiċi C u C++, inklużi dawk li jużaw sintassi mhux standard tipika tas-sistemi integrati. Hemm disponibbli ġabra ta' plugins li jippermettu l-integrazzjoni ta' cppcheck ma' diversi sistemi ta' żvilupp, integrazzjoni kontinwa, u ttestjar, kif ukoll karatteristiċi bħall-iċċekkjar tal-istil tal-kodiċi. Kemm il-parser nattiv kif ukoll il-parser estern Clang jistgħu jintużaw għall-analiżi tal-kodiċi. Il-pakkett jinkludi wkoll l-iskritt donate-cpu.py biex jipprovdi riżorsi lokali għall-iċċekkjar kollaborattiv tal-kodiċi tal-pakkett. DebianIl-kodiċi tas-sors tal-proġett huwa mqassam taħt il-liċenzja GPLv3.

L-iżvilupp ta 'cppcheck huwa ffokat fuq l-identifikazzjoni ta' problemi assoċjati ma 'imġieba mhux definita u l-użu ta' disinji li huma perikolużi mil-lat ta 'sikurezza. L-għan huwa wkoll li jiġu minimizzati l-pożittivi foloz. Fost il-problemi identifikati: indikaturi għal oġġetti ineżistenti, diviżjonijiet b'żero, overflows ta 'numri sħaħ, operazzjonijiet ta' shift tal-bit mhux korretti, konverżjonijiet mhux korretti, problemi meta taħdem bil-memorja, użu ħażin ta 'STL, dereferences null pointer, l-użu ta' kontrolli wara l-aċċess attwali għall-buffer, buffer overruns , użu ta 'varjabbli mhux inizjali.

Fil-verżjoni l-ġdida:

  • Il-kontrolli li ġejjin ġew miżjuda mal-qalba tal-analizzatur:
    • assenza ta' operatur tar-ritorn fil-korp tal-funzjoni;
    • jirreġistra data li tikkoinċidi, jiddetermina mġiba mhux definita;
    • il-valur li qed jitqabbel huwa barra r-rappreżentazzjoni tal-valur tat-tip;
    • l-ottimizzazzjoni tal-kopja ma tapplikax għar-ritorn std::move(local);
    • il-fajl ma jistax jinfetaħ simultanjament għall-qari u l-kitba fi flussi differenti (fluss);
  • għal pjattaformi Unix, appoġġ miżjud għall-wiri ta 'messaġġi dijanjostiċi f'kuluri differenti;
  • analiżi simbolika miżjuda għal ValueFlow. Juża delta sempliċi meta tikkalkula d-differenza bejn żewġ varjabbli mhux magħrufa;
  • ir-regoli użati għal-lista ta 'tokens "jiddefinixxu" jistgħu wkoll jaqblu #include;
  • tikketta tal-librerija issa jista' jkun fih tikketta , u għalhekk il-funzjonijiet ħielsa, li jistgħu jaċċettaw kontenituri bħal std::size, std::empty, std::begin, std::end, eċċ. jista 'jispeċifika yeld jew azzjoni għall-konnetturi;
  • tikketta tal-librerija issa jista' jkun fih tikketta għal pointers intelliġenti li għandhom sjieda unika. Issa tinħareġ twissija dwar referenzi dangling għal dawn it-tipi ta 'smart pointers;
  • ffissati problemi bl-ipproċessar tal-parametru —cppcheck-build-dir;
  • htmlreport issa jista' juri informazzjoni dwar l-awtur (bl-użu ta' git blame);
  • twissijiet estiżi dwar varjabbli li mhumiex kostanti, iżda jistgħu jkunu;
  • L-iżbalji u n-nuqqasijiet akkumulati tal-analizzatur ġew ikkoreġuti.

Barra minn hekk, il-kontrolli minn Misra C 2012, inklużi l-Emenda 1 u l-Emenda 2, ġew implimentati bis-sħiħ, ħlief għar-regoli 1.1, 1.2 u 17.3. Il-kontrolli 1.1 u 1.2 għandhom isiru mill-kompilatur. Il-verifika 17.3 tista' ssir minn kompilatur bħal GCC.

Sors: opennet.ru

Ixtri hosting affidabbli għal siti bi protezzjoni DDoS, servers VPS VDS 🔥 Ixtri hosting ta' websajts affidabbli bi protezzjoni DDoS, servers VPS VDS | ProHoster