PC-Lint for C/C++ V9.0

PC-Lint / FlexeLint

Statische Analyse von C/C++ Quellcode.

Hersteller: Gimpel Software

Aktuelle Version: 9.00L / Betriebssystem: Windows bzw. Linux/Unix

Die Features von PC-Lint / FlexeLint

Weitere Infos:   Liste aller Meldungen   Misra-C 2012 Unterstützung   PC-Lint Plus

PC-Lint bzw. FlexeLint sind statische Analysetools und überprüfen C/C++ Quellcode genauer als jeder Compiler und finden viele Fehler, die ein C/C++ Compiler nicht findet bzw. grundsätzlich nicht finden kann. Im Gegensatz zu einem Compiler analysieren PC-Lint / FlexeLint C/C++ Quellen modulübergreifend.

PC-Lint läuft auf Windows, während FlexeLint auf Linux, Unix etc. eingesetzt wird. Ansonsten sind beide Tools identisch.

PC-Lint / FlexeLint überprüfen C++ Code nach dem Annotated C++ Reference Manual (ISO/IEC 14882:2003). Moderne Konstruktionen der Sprachstandards C++11, C++14 und C++17 werden allerdings nicht unterstützt. Dafür ist PC-Lint Plus erforderlich.
Die Überprüfung von C Code erfolgt nach dem C99 Standard oder per Option nach C90 oder K&R. Mit PC-Lint / FlexeLint können auch die Programmierrichtlinien des MISRA Standards, einschließlich MISRA C 2012 kontrolliert werden.

PC-Lint / FlexeLint kann an jeden C/C++ Compiler angepaßt werden und kommt mit Unterstützung für sehr viele Compiler, insbesondere auch Compiler für Embedded Systems.

PC-Lint / FlexeLint ist rein kommandozeilen orientiert und eignet sich hervorragend zum Einsatz in Make-Files oder automatischen Build-Systemen. Für PC-Lint steht mit Visual Lint aber auch eine GUI-Oberfläche zur Verfügung, mit der Möglichkeit einer Integration in MS Visual Studio und Eclipse.

PC-Lint / FlexeLint überprüft Ihren Quellcode auf typische C++- und C-Fehler und findet:

  • nicht initialisierte Variablen
  • vererbte, nicht virtuelle Destruktoren
  • Typ-Unverträglichkeiten
  • falsch formulierte Macros
  • unbeabsichtigtes Name-hiding
  • etc. etc.

PC-Lint / FlexeLint kann überprüfen, ob Ihre C++-Quellen Scott Meyer's C++ Designregeln und Empfehlungen einhalten und findet z.B.:

  • Statische Variablen in In-line-Funktionen von Headern
  • Fehler beim Kopieren einer Basisklasse oder bei der Benutzung des Copyconstructors der Basisklasse
  • Gebrauch von 'throw'in einem Destruktor
  • unreferenzierte 'catch'-Parameter
  • virtuelle Funktionen mit einem default Parameter
  • Funktionsparameter, die 'const' declariert werden können

Strong Type Checking

Multi-Thread Support

Das 'Value Tracking' von PC-Lint / FlexeLint findet z.B. den Überlauf eines Array-Index oder Zugriffe auf NULL-Pointer. Beim 'Value Tracking'  handelt es sich um eine Art symbolische Ausführung (ohne Testdaten), bei der Initialisierungen verfolgt werden.

Das 'Pointer Tracking' von PC-Lint / FlexeLint verfolgt Pointer auf ihrem 'Lebensweg' und entdeckt unpassende 'delete's oder 'free's, nicht freigegebene Memorybereiche und arithmetische Veränderung eines Pointers, der die Obhut über eine Allozierung hat (z.B.: p = malloc( 100); p++, free(p) ).

PC-Lint / FlexeLint kennt die Standard-Funktionen und kontrolliert die Parameterübergabe an diese Funktionen und die Nutzung ihrer Rückgabewerte.
Mit den 'user-defined Semantics' von PC-Lint / FlexeLint kann diese Schnittstellenüberprüfung auch auf eigene Funktionen angewendet werdeb.