Veröffentlichung von cppcheck 2.7, einem statischen Code-Analyzer für C++ und C.

Die neue Version des statischen Code-Analysators cppcheck 2.7 ermöglicht das Erkennen verschiedener Fehlerarten in Code in den Sprachen C und C++, einschließlich der Verwendung von nicht standardmäßiger Syntax, die typisch für eingebettete Systeme ist. Es wird eine Sammlung von Plugins bereitgestellt, die die Integration von cppcheck mit verschiedenen Entwicklungs-, kontinuierlichen Integrations- und Testsystemen ermöglichen, sowie Funktionen wie die Überprüfung der Übereinstimmung des Codes mit dem Codestil bieten. Zur Analyse des Codes kann sowohl der eigene Parser als auch der externe Parser von Clang verwendet werden. Ebenfalls enthalten ist das Skript donate-cpu.py, das lokale Ressourcen für die Durchführung gemeinsamer Codeprüfungen von Debian-Paketen bereitstellt. Die Quelltexte des Projekts werden unter der GPLv3-Lizenz verbreitet.

Die Entwicklung von cppcheck konzentriert sich auf die Identifizierung von Problemen im Zusammenhang mit undefiniertem Verhalten und der Verwendung von Konstruktionen, die aus sicherheitstechnischer Sicht bedenklich sind. Ziel ist auch die Minimierung von Fehlalarmierungen. Zu den identifizierten Problemen gehören: Zeiger auf nicht existierende Objekte, Division durch Null, Ganzzahlüberläufe, fehlerhafte Bitverschiebungsoperationen, inkorrekte Typumwandlungen, Probleme bei der Speicherverwaltung, unsachgemäße Verwendung von STL, Dereferenzierung von Nullzeigern, Überprüfungen nach dem tatsächlichen Zugriff auf den Puffer, Pufferüberläufe und die Verwendung von nicht initialisierten Variablen.

Parallel dazu entwickelt die schwedische Firma Cppcheck Solutions AB eine erweiterte Version, Cppcheck Premium, die die Analyse von endlosen Schleifen, eine verbesserte Suche nach nicht initialisierten Variablen und eine erweiterte Analyse von Pufferüberläufen ermöglicht.

In der neuen Version:

  • Die Unterstützung von Ansichten (view) für Container wurde hinzugefügt – im Bibliotheks-Tag wurde ein Attribut view hinzugefügt, das angibt, dass die Klasse eine Ansicht ist. Der Analysecode zur Lebensdauer wurde aktualisiert, um dieses Attribut bei der Suche nach "hängenden" Containern zu verwenden;
  • Die Prüfungen wurden verbessert;
  • Die angesammelten Fehler wurden behoben und Mängel des Analysators beseitigt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4