Software Development for Professionals
PC-Lint for C/C++ V9.0

PC-Lint / FlexeLint
Features

Statische Analyse von C/C++ Quellcode.

Hersteller: Gimpel Software

Weitere Infos:   MISRA Standard   Liste aller Meldungen

PC-Lint bzw. FlexeLint

unverzichtbar für die Qualitätsicherung von C/C++ Programmen!

PC-Lint bzw. FlexeLint sind statische Analysetools und überprüfen C/C++ Quellcode genauer als jeder Compiler und findet viele Fehler, die ein C/C++ Compiler nicht findet bzw. grundsätzlich nicht finden kann. Im Gegensatz zu einem Compiler analysiert 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), Teile des kommenden Standards C++11 (ehemals C++0x) werden ebenfalls bereits unterstützt. 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 jeder Anwender, die Schnittstellenüberprüfung auch auf eigene Funktionen anwenden.