De nieuwe versie van cppcheck 2.6 is al uitgebracht en dit is het nieuws

Het uitkomen van de versie van de statische codeanalysator cppcheck 2.6Dat maakt het mogelijk om verschillende soorten fouten in C- en C ++ -code te detecterenzelfs bij gebruik van niet-standaard syntaxis die typisch is voor embedded systemen.

Er wordt een verzameling plug-ins geleverd waarmee de integratie van cppcheck met verschillende ontwikkelings-, continue integratie- en testsystemen wordt geboden, evenals functies zoals het controleren van de naleving van de code met de coderingsstijl.

Om de code te analyseren, je kunt zowel je eigen parser als een externe Clang-parser gebruiken. Het bevat ook een done-cpu.py-script om lokale bronnen te bieden voor collaboratief codebeoordelingswerk voor Debian-pakketten.

De ontwikkeling van cppcheck richt zich op het identificeren van problemen die verband houden met ongedefinieerd gedrag en het gebruik van constructies die gevaarlijk zijn vanuit veiligheidsoogpunt.

Het doel is ook om valse positieven te minimaliseren. Onder de geïdentificeerde problemen: pointers naar niet-bestaande objecten, deling door nul, integer overflows, slechte bit-shifting operaties, slechte conversies, geheugenproblemen, onjuist gebruik van STL, dereferentie van null pointers, controles toepassen na een echte toegang tot een buffer , de bufferlimieten overschrijden, met behulp van niet-geïnitialiseerde variabelen.

Belangrijkste nieuwe functies van cppcheck 2.6

In deze nieuwe versie se hebben verschillende controles toegevoegd aan de kernel van de parser, waaronder de verificatie van de afwezigheid van een return-statement in de hoofdtekst van de functie, evenals die van overlappende gegevensrecords, ongedefinieerde gedragsdefinities en ook de verificatie van de waarde die wordt vergeleken, valt buiten het bereik van de representatie van de waarde van het type.

Een andere noviteit die opvalt is de kopieeroptimalisatie is niet van toepassing op return std :: move (local);, plus ondersteuning is toegevoegd voor het weergeven van diagnostische berichten in verschillende kleuren voor Unix-platforms en dat de bibliotheektag kan nu een tag bevatten voor slimme wijzers met een unieke eigenschap. Waarschuwing voor bungelende links wordt nu afgegeven aan dit soort slimme aanwijzers.

Bovendien heeft Misra C 2012 controles zijn volledig geïmplementeerd, inclusief amendement 1 en amendement 2, met uitzondering van de regels 1.1, 1.2 en 17.3. De compiler moet de controles 1.1 en 1.2 uitvoeren. Een compiler zoals GCC kan 17.3 controleren.

Van de andere veranderingen die opvallen van deze nieuwe versie:

  • Het bestand kan niet tegelijkertijd worden geopend om in verschillende streams te lezen en te schrijven;
  • Symbolische analyse toegevoegd voor ValueFlow. Een eenvoudige delta wordt gebruikt bij het berekenen van het verschil tussen twee onbekende variabelen;
  • De regels die worden gebruikt voor de "definieer" tokenlijst kunnen ook overeenkomen met #include;
  • De bibliotheektag kan nu een tag bevatten en dus gratis functies die containers kunnen accepteren zoals std :: size, std :: empty, std :: begin, std :: end, etc. u kunt yeld of action specificeren voor containers;
  • Problemen opgelost met de afhandeling van de parameter –cppcheck-build-dir;
    htmlreport kan nu informatie over de auteur afdrukken (met behulp van git blaam);
  • Uitgebreide uitgifte van waarschuwingen voor variabelen die niet constant zijn, maar wel constant kunnen worden;
  • Geaccumuleerde fouten en tekortkomingen in de analyser zijn verholpen.

Tot slot, als u meer wilt weten over deze nieuwe versie, kunt u raadplegen de details in de volgende link.

Hoe installeer ik cppcheck op Linux?

Voor degenen die geïnteresseerd zijn om cppcheck op hun Linux-distributie te kunnen installeren, kunnen ze de instructies volgen die we hieronder delen.

Als u een Debian-gebruiker bent of een andere distributie die erop is gebaseerd of daarvan is afgeleid, zoals Deepin of Ubuntu, kunt u rechtstreeks vanaf de terminal installeren door de volgende opdracht te typen:

sudo apt-get install cppcheck

Nu voor degenen die Fedora-gebruikers en afgeleiden ervan zijn, ze kunnen de installatie uitvoeren door het volgende commando te typen:

sudo yum instalar cppcheck

Of voor degenen die Arch Linux-gebruikers zijn of een andere afgeleide ervan, ze kunnen installeren met de volgende opdracht:

sudo pacman -S cppcheck


De inhoud van het artikel voldoet aan onze principes van redactionele ethiek. Klik op om een ​​fout te melden hier.

Wees de eerste om te reageren

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.