Rilascio di cppcheck 2.7, un analizzatore di codice statico per i linguaggi C++ e C

È stata rilasciata una nuova versione dell'analizzatore di codice statico cppcheck 2.7, che consente di identificare varie classi di errori nel codice nei linguaggi C e C++, anche quando si utilizza una sintassi non standard, tipica dei sistemi embedded. Viene fornita una raccolta di plugin attraverso i quali cppcheck si integra con vari sistemi di sviluppo, integrazione continua e test e fornisce anche funzionalità come il controllo della conformità del codice con lo stile del codice. Per analizzare il codice, puoi utilizzare il tuo parser o un parser esterno di Clang. Include anche lo script donate-cpu.py per fornire risorse locali per svolgere un lavoro collaborativo di revisione del codice per i pacchetti Debian. Il codice sorgente del progetto è distribuito sotto la licenza GPLv3.

Lo sviluppo di cppcheck è focalizzato sull'identificazione dei problemi associati a comportamenti indefiniti e all'uso di progetti pericolosi dal punto di vista della sicurezza. L’obiettivo è anche quello di ridurre al minimo i falsi positivi. Tra i problemi identificati: puntatori a oggetti inesistenti, divisioni per zero, overflow di numeri interi, operazioni errate di spostamento di bit, conversioni errate, problemi quando si lavora con la memoria, uso errato di STL, dereferenziazioni di puntatori nulli, uso di controlli dopo l'accesso effettivo al buffer, buffer overrun, utilizzo di variabili non inizializzate.

Parallelamente, la società svedese Cppcheck Solutions AB sta sviluppando una versione estesa di Cppcheck Premium, che fornisce analisi della presenza di loop infiniti, ricerca migliorata di variabili non inizializzate e analisi avanzata del buffer overflow.

Nella nuova versione:

  • Aggiunto supporto per le visualizzazioni dei contenitori: l'attributo view è stato aggiunto al tag della libreria, indicando che la classe è una visualizzazione. Il codice di analisi della durata è stato aggiornato per utilizzare questo attributo durante la ricerca di contenitori pendenti;
  • Controlli migliorati;
  • Gli errori accumulati sono stati corretti e le carenze dell'analizzatore sono state eliminate.

Fonte: opennet.ru

Aggiungi un commento