Gefa út cppcheck 2.6, kyrrstöðugreiningartæki fyrir C++ og C tungumál

Ný útgáfa af kyrrstöðukóðagreiningartækinu cppcheck 2.6 hefur verið gefin út, sem gerir þér kleift að bera kennsl á ýmsa flokka villna í kóða á C og C++ tungumálunum, þar á meðal þegar þú notar óstöðluð setningafræði, dæmigerð fyrir innbyggð kerfi. Safn af viðbótum er til staðar þar sem cppcheck er samþætt ýmsum þróunar-, samfelldri samþættingu og prófunarkerfum og býður einnig upp á eiginleika eins og að athuga samræmi kóðans við kóðastílinn. Til að flokka kóða geturðu notað annað hvort þinn eigin þáttara eða ytri flokka frá Clang. Það felur einnig í sér donate-cpu.py forskriftina til að útvega staðbundin úrræði til að vinna samvinnukóða endurskoðunarvinnu fyrir Debian pakka. Frumkóði verkefnisins er dreift undir GPLv3 leyfinu.

Þróun cppcheck beinist að því að greina vandamál sem tengjast óskilgreindri hegðun og notkun hönnunar sem er hættuleg út frá öryggissjónarmiðum. Markmiðið er einnig að lágmarka rangar jákvæðar. Meðal tilgreindra vandamála: ábendingar um hluti sem ekki eru til, deilingar með núll, heiltöluflæði, rangar bitaskiptingaraðgerðir, rangar umbreytingar, vandamál þegar unnið er með minni, röng notkun á STL, núllbendistilvísanir, notkun ávísana eftir raunverulegan aðgang til biðminni, biðminni offramkeyrt, notkun óuppstilltra breytna.

Í nýju útgáfunni:

  • Eftirfarandi athuganir hafa verið bætt við greiningarkjarna:
    • skortur á skilaþjónustuaðila í aðgerðahlutanum;
    • skráir gögn sem skarast, ákvarðar óskilgreinda hegðun;
    • gildið sem borið er saman er utan gildisframsetningar tegundarinnar;
    • afrita fínstilling á ekki við um skila std::move(local);
    • ekki er hægt að opna skrána samtímis til að lesa og skrifa í mismunandi straumum (straumur);
  • fyrir Unix palla, bætt við stuðningi við að sýna greiningarskilaboð í mismunandi litum;
  • bætt við táknrænni greiningu fyrir ValueFlow. Notar einfalda delta þegar reiknaður er út mismunur á milli tveggja óþekktra breyta;
  • reglurnar sem notaðar eru fyrir lista yfir tákn "skilgreina" geta líka passað við #include;
  • bókasafnsmerki getur nú innihaldið merki , og í samræmi við það ókeypis aðgerðir, sem geta tekið við gámum eins og std::size, std::empty, std::begin, std::end, o.s.frv. getur tilgreint ávöxtun eða aðgerð fyrir tengi;
  • bókasafnsmerki getur nú innihaldið merki fyrir snjalla ábendingar sem hafa einstakt eignarhald. Nú er gefin út viðvörun um hangandi tilvísanir í þessa tegund af snjallvísum;
  • lagað vandamál við að vinna úr —cppcheck-build-dir færibreytunni;
  • htmlreport getur nú birt upplýsingar um höfundinn (með því að nota git blame);
  • víðtækar viðvaranir um breytur sem eru ekki stöðugar, en gætu verið það;
  • Uppsafnaðar villur og gallar greiningartækisins hafa verið leiðréttar.

Auk þess hafa athuganir frá Misra C 2012, þar á meðal breyting 1 og breyting 2, verið innleiddar að fullu, nema reglur 1.1, 1.2 og 17.3. Athuganir 1.1 og 1.2 verða að vera framkvæmdar af þýðandanum. Staðfesting 17.3 er hægt að framkvæma af þýðanda eins og GCC.

Heimild: opennet.ru

Bæta við athugasemd