Uitgave van cppcheck 2.7, een statische code-analysator voor C++- en C-talen

Er is een nieuwe versie van de statische code-analysator cppcheck 2.7 uitgebracht, waarmee u verschillende soorten fouten in code in de talen C en C++ kunt identificeren, ook bij gebruik van niet-standaard syntaxis, typisch voor embedded systemen. Er wordt een verzameling plug-ins geleverd waarmee cppcheck kan worden geïntegreerd met verschillende ontwikkelings-, continue integratie- en testsystemen, en die ook functies biedt zoals het controleren van de naleving van de codestijl. Om code te parseren, kunt u uw eigen parser of een externe parser van Clang gebruiken. Het bevat ook het doneren-cpu.py-script om lokale bronnen te bieden voor het gezamenlijk uitvoeren van codereviews voor Debian-pakketten. De broncode van het project wordt gedistribueerd onder de GPLv3-licentie.

De ontwikkeling van cppcheck is gericht op het identificeren van problemen die verband houden met ongedefinieerd gedrag en het gebruik van ontwerpen die vanuit veiligheidsoogpunt gevaarlijk zijn. Het doel is ook om valse positieven te minimaliseren. Onder de geïdentificeerde problemen: verwijzingen naar niet-bestaande objecten, delingen door nul, integer-overflows, onjuiste bitverschuivingsbewerkingen, onjuiste conversies, problemen bij het werken met geheugen, onjuist gebruik van STL, null pointer-dereferenties, het gebruik van controles na de daadwerkelijke toegang naar de buffer, bufferoverruns, gebruik van niet-geïnitialiseerde variabelen.

Tegelijkertijd ontwikkelt het Zweedse bedrijf Cppcheck Solutions AB een uitgebreide versie van Cppcheck Premium, die analyse biedt van de aanwezigheid van oneindige lussen, verbeterd zoeken naar niet-geïnitialiseerde variabelen en geavanceerde bufferoverflow-analyse.

In de nieuwe versie:

  • Ondersteuning toegevoegd voor views van containers - het view attribuut is toegevoegd aan de bibliotheektag, wat aangeeft dat de klasse een view is. De levensduuranalysecode is bijgewerkt om dit kenmerk te gebruiken bij het zoeken naar bungelende containers;
  • Verbeterde controles;
  • Geaccumuleerde fouten zijn gecorrigeerd en tekortkomingen in de analysator zijn geëlimineerd.

Bron: opennet.ru

Voeg een reactie