A fost lansată o nouă versiune a analizatorului static de cod cppcheck 2.7, care permite identificarea diferitelor tipuri de erori în codul scris în C și C++, inclusiv la utilizarea unei sintaxe non-standard, tipice pentru sistemele încorporate. Se oferă o colecție de pluginuri, care asigură integrarea cppcheck cu diverse sisteme de dezvoltare, integrare continuă și testare, precum și funcționalități precum verificarea conformității codului cu stilul de formatare. Pentru analizarea codului poate fi folosit atât parserul propriu, cât și parserul extern de la Clang. De asemenea, se include un script donate-cpu.py pentru a oferi resurse locale pentru realizarea verificării comune a codului pachetelor Debian. Codul sursă al proiectului este distribuit sub licența GPLv3.
Dezvoltarea cppcheck se concentrează pe identificarea problemelor legate de comportamentul nedefinit și utilizarea construcțiilor periculoase din punct de vedere al securității. Obiectivul este, de asemenea, minimizarea alarmelor false. Printre problemele identificate se numără: pointere la obiecte inexistente, împărțiri la zero, depășiri de capacitate a numerelor întregi, operații incorecte de deplasare a biților, conversii incorecte, probleme de gestionare a memoriei, utilizarea necorespunzătoare a STL, dereferentierea pointerelor nule, aplicarea verificărilor după accesul efectiv la tampon, depășirea limitelor buferelor, utilizarea variabilelor neinițializate.
În paralel, compania suedeză Cppcheck Solutions AB dezvoltă o versiune extinsă Cppcheck Premium, care oferă analiza existenței buclelor infinite, o căutare îmbunătățită a variabilelor neinițializate și o analiză extinsă a depășirii buferelor.
În noua versiune:
- A fost adăugată suportul pentru vizualizări (view) ale containerelor - în eticheta bibliotecii a fost adăugat atributul view, indicând că clasa este o vizualizare. Codul pentru analiza timpului de viață a fost actualizat pentru a folosi acest atribut în căutarea containerelor „suspendate”;
- Verificările au fost îmbunătățite;
- S-au corectat erorile acumulate și s-au eliminat neajunsurile analizatorului.
Sursa: opennet.ro
