Udgivelse af cppcheck 2.7, en statisk kodeanalysator til C++ og C sprog

En ny version af den statiske kodeanalysator cppcheck 2.7 er blevet frigivet, som giver dig mulighed for at identificere forskellige klasser af fejl i kode i C- og C++-sprogene, herunder ved brug af ikke-standardsyntaks, typisk for indlejrede systemer. En samling af plugins er tilvejebragt, hvorigennem cppcheck er integreret med forskellige udviklings-, kontinuerlige integrations- og testsystemer, og giver også sådanne funktioner som kontrol af kodeoverensstemmelse med kodestilen. For at parse kode kan du bruge enten din egen parser eller en ekstern parser fra Clang. Det inkluderer også donate-cpu.py-scriptet til at give lokale ressourcer til at udføre samarbejde om kodegennemgang for Debian-pakker. Kildekoden til projektet distribueres under GPLv3-licensen.

Udviklingen af ​​cppcheck er fokuseret på at identificere problemer forbundet med udefineret adfærd og brug af designs, der er farlige ud fra et sikkerhedsmæssigt synspunkt. Målet er også at minimere falske positiver. Blandt de identificerede problemer: pointere til ikke-eksisterende objekter, divisioner med nul, heltalsoverløb, forkerte bitforskydningsoperationer, forkerte konverteringer, problemer med at arbejde med hukommelse, forkert brug af STL, nul pointer-dereferencer, brug af kontroller efter den faktiske adgang til bufferen, bufferoverskridelser, brug af uinitialiserede variable.

Sideløbende udvikler det svenske firma Cppcheck Solutions AB en udvidet version af Cppcheck Premium, som giver analyse af tilstedeværelsen af ​​uendelige loops, forbedret søgning efter uinitialiserede variable og avanceret bufferoverløbsanalyse.

I den nye version:

  • Tilføjet understøttelse af visninger af containere - view-attributten er blevet tilføjet til bibliotekstagget, hvilket indikerer, at klassen er en visning. Levetidsanalysekoden er blevet opdateret til at bruge denne attribut, når du søger efter dinglende containere;
  • Forbedret kontrol;
  • Akkumulerede fejl er blevet rettet og mangler i analysatoren er elimineret.

Kilde: opennet.ru

Tilføj en kommentar