La nova versió de cppcheck 2.6 ja va ser alliberada i aquestes són les seves novetats

S'ha donat a conèixer l'alliberament de la versió de l'analitzador de codi estàtic cppcheck 2.6, que permet detectar diverses classes d'errors al codi C i C++, fins i tot quan sutilitza una sintaxi no estàndard típica dels sistemes integrats.

Es proporciona una col·lecció de complements a través dels quals es proporciona la integració de cppcheck amb diversos sistemes de desenvolupament, integració contínua i prova, així com característiques com verificar el compliment del codi amb l'estil de codificació.

Per analitzar el codi, es pot utilitzar tant el seu propi analitzador com un analitzador extern de Clang. També inclou un script donate-cpu.py per proporcionar recursos locals per fer el treball de revisió col·laborativa del codi dels paquets Debian.

El desenvolupament de cppcheck se centra a identificar problemes associats amb el comportament indefinit i lús de constructes que són perillosos des del punt de vista de la seguretat.

L'objectiu també és minimitzar els falsos positius. Entre els problemes identificats: punters a objectes inexistents, divisió per zero, desbordaments d'enters, operacions de canvi de bit incorrectes, conversions incorrectes, problemes amb la memòria, ús incorrecte de STL, desreferenciació de punters nuls, aplicació de verificacions després d'un accés real a un memòria intermèdia, desbordant els límits del memòria intermèdia, utilitzant variables no inicialitzades.

Principals novetats de cppcheck 2.6

En aquesta nova versió si han afegit diverses comprovacions al nucli de l'analitzador, dentre les quals es destaca la comprovació de labsència duna declaració de retorn en el cos de la funció, així com també la de registres de dades superposades, definicions de comportament indefinides i també la comprovació per al valor que es compara està fora del rang de la representació del valor del tipus.

Una altra de les novetats que es destaca que és la optimització de còpia no s'aplica a return std::move (local);, a més que es va afegir suport per mostrar missatges de diagnòstic en diferents colors per a plataformes Unix i que l'etiqueta de biblioteca ara podeu contenir una etiqueta per a punters intel·ligents que tenen propietat única. Ara s'emet l'advertiment sobre enllaços penjants a aquest tipus de punters intel·ligents.

A més, els controls de Misra C 2012 s'han implementat íntegrament, inclosa l'esmena 1 i l'esmena 2, excepte les regles 1.1, 1.2 i 17.3. El compilador ha de fer les comprovacions 1.1 i 1.2. Un compilador com a GCC pot comprovar 17.3.

Dels altres canvis que es destaquen d'aquesta nova versió:

  • El fitxer no es pot obrir simultàniament per llegir i escriure en diferents seqüències;
  • Anàlisi simbòlic agregat per a ValueFlow. Es fa servir un delta simple en calcular la diferència entre dues variables desconegudes;
  • Les regles utilitzades per a la llista de tokens «definir» també poden coincidir amb #include;
  • L'etiqueta de biblioteca ara podeu contenir una etiqueta i, per tant, funcions gratuïtes que poden acceptar contenidors com std::size, std::empty, std::begin, std::end, etc. podeu especificar yeld o action per a contenidors;
  • Es van corregir problemes amb el maneig del paràmetre –cppcheck-build-dir;
    htmlreport ara pot imprimir informació sobre l'autor (usant git blame);
  • Emissió ampliada d'advertiments sobre variables que no són constants, però que es poden convertir en constants;
  • S'han corregit els errors i les deficiències acumulats de l'analitzador.

Finalment si estàs interessat a conèixer més sobre aquesta nova versió, pots consultar els detalls en el següent enllaç.

Com instal.lar cppcheck en Linux?

Per als que estiguin interessats a poder instal·lar cppcheck en la seva distribució de Linux, poden seguir les instruccions que compartim a continuació.

Si ets usuari de Debian o qualsevol altra distribució basada o derivada d'aquesta com ho són Deepin o Ubuntu, poden realitzar la instal·lació directament des de la terminal teclejant la següent ordre:

sudo apt-get install cppcheck

Ara per als qui són usuaris de Fedora i derivats d'aquest, poden realitzar la instal·lació teclejant la següent ordre:

sudo yum instalar cppcheck

O per als qui són usuaris d'Arch Linux o qualsevol altre derivat d'aquest, poden instal·lar amb l'ordre següent:

sudo pacman -S cppcheck