Den nya versionen av cppcheck 2.6 har redan släppts och det här är dess nyheter

Släppet av versionen av den statiska kodanalysatorn cppcheck 2.6Att låter dig upptäcka olika typer av fel i C- och C++-kod, även när du använder en icke-standardsyntax som är typisk för inbyggda system.

En samling plugins tillhandahålls genom vilka cppcheck-integrering med olika utvecklings-, kontinuerliga integrations- och testsystem tillhandahålls, såväl som funktioner som att kontrollera kodkompatibilitet med kodningsstil.

För att analysera koden, du kan använda både din egen parser och en extern Clang-parser. Det innehåller också ett donate-cpu.py-skript för att tillhandahålla lokala resurser för att utföra samarbetande kodgranskning av Debianpaket.

Utvecklingen av cppcheck fokuserar på att identifiera problem associerade med odefinierat beteende och användningen av konstruktioner som är farliga ur säkerhetssynpunkt.

Målet är också att minimera falska positiva resultat.. Bland de problem som identifierats: pekare till icke-existerande objekt, division med noll, heltalsspill, felaktiga bitskiftsoperationer, felaktiga konverteringar, minnesproblem, felaktig användning av STL, avläsning av nollpekare, applicering av efteråtkomstkontroller på en buffert, överfyllning buffertgränser, med hjälp av oinitierade variabler.

De viktigaste nya funktionerna i cppcheck 2.6

I denna nya version sOlika kontroller har lagts till i parserkärnan, bland vilka kontrollen för frånvaron av en returdeklaration i funktionskroppen är markerad, liksom kontrollen för överlappande dataposter, odefinierade beteendedefinitioner och även kontrollen för värdet som jämförs ligger utanför intervallet för värderepresentationen av typen.

En annan nyhet som sticker ut är kopieringsoptimering gäller inte för att returnera std::move (lokal);, samt lagt till stöd för att visa diagnostiska meddelanden i olika färger för Unix-plattformar och att bibliotekstaggen kan nu innehålla en tagg för smarta pekare som har en unik egenskap. Den dinglande länkvarningen utfärdas nu till denna typ av smarta pekare.

Dessutom, Misra C 2012 kontroller har implementerats fullt ut, inklusive ändringsförslag 1 och ändringsförslag 2, utom reglerna 1.1, 1.2 och 17.3. Kompilatorn bör utföra kontroller 1.1 och 1.2. En kompilator som GCC kan kontrollera 17.3.

Av de andra förändringarna som sticker ut av denna nya version:

  • Filen kan inte öppnas samtidigt för läsning och skrivning till olika strömmar;
  • Tillagd symbolisk analys för ValueFlow. Ett enkelt delta används vid beräkning av skillnaden mellan två okända variabler;
  • Reglerna som används för "definiera" tokenlistan kan också matcha #include;
  • Bibliotekstaggen kan nu innehålla en tagg och därmed gratisfunktioner som kan acceptera omslag som std::size, std::empty, std::begin, std::end, etc. du kan ange avkastning eller åtgärd för behållare;
  • Fixade problem med hanteringen av parametern –cppcheck-build-dir;
    htmlreport kan nu skriva ut författarinformation (med git blame);
  • Utökat utfärdande av varningar om variabler som inte är konstanter, men som kan bli konstanter;
  • Ackumulerade buggar och brister i parsern har åtgärdats.

Slutligen, om du är intresserad av att lära dig mer om den här nya versionen kan du konsultera detaljerna i följande länk.

Hur installerar man cppcheck på Linux?

För de som är intresserade av att kunna installera cppcheck på sin Linux-distribution kan de följa instruktionerna som vi delar nedan.

Om du är en Debiananvändare eller någon annan distribution baserad på eller härledd från den, såsom Deepin eller Ubuntu, kan du installera direkt från terminalen genom att skriva följande kommando:

sudo apt-get install cppcheck

Nu för de som är användare av Fedora och derivat av det, de kan utföra installationen genom att skriva följande kommando:

sudo yum instalar cppcheck

Eller för de som är användare av Arch Linux eller något annat derivat av det, de kan installera med följande kommando:

sudo pacman -S cppcheck