Den nye version af kodeanalyseværktøjet cppcheck 2.7 er blevet udgivet. Det muliggør identifikation af forskellige klasser af fejl i koder skrevet i C og C++, herunder ved brug af ikke-standard syntaks, der ofte ses i indlejrede systemer. Der tilbydes en samling plugins, som gør det muligt at integrere cppcheck med forskellige udviklings-, kontinuerlige integrations- og testsystemer. Derudover tilbyder det muligheder som kontrol af, om koden følger kodestil. Til kodeanalysen kan både en intern parser og en ekstern parser fra Clang anvendes. Der medfølger også et script donate-cpu.py til at stille lokale ressourcer til rådighed for at udføre fælles kodekontrol af Debian-pakker. Projektets kildekode distribueres under GPLv3-licensen.
Udviklingen af cppcheck fokuserer på at identificere problemer relateret til udefineret opførsel og anvendelse af konstruktioner, som er sikkerhedsmæssigt problematiske. Målet er også at minimere falske alarmer. Nogle af de identificerede problemer inkluderer: pekere til ikke-eksisterende objekter, division med nul, integer overflow, ukorrekte bitshift-operationer, ukorrekte typeomdannelser, problemer med hukommelse, forkert brug af STL, dereferencering af nul-peker og anvendelse af tjek efter faktisk adgang til bufferen, overskridelse af buffere og brug af ikke-initialiserede variabler.
Samtidig udvikler det svenske firma Cppcheck Solutions AB en udvidet version, Cppcheck Premium, der muliggør analyse af uendelige løkker, forbedret søgning efter ikke-initialiserede variabler og udvidet analyse af buffer overflow.
I den nye version:
- Støtte til visninger (view) af containere er blevet tilføjet - tagget i biblioteket har fået attributten view, som angiver, at klassen er en visning. Koden til analyse af livstiden er blevet opdateret til at bruge denne attribut ved søgning efter "hængende" containere.
- Kontrollerne er blevet forbedret;
- Opsamlede fejl er blevet rettet, og mangler i analysatoren er blevet udbedret.
Kilde: opennet.ru
