unverzichtbar für die Qualitätsicherung von C/C++ Programmen!
PC-Lint / FlexeLint überprüft 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 / FlexeLint überprüfen C++ Code nach ARM und C Code nach dem C99 Standard oder per Option nach C90 oder K&R. Es kann außerdem die Einhaltung der MISRA
Richtlinien 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 ein Zusatz für die Integration von PC-Lint in MS Visual Studio mit grafischer Oberfläche zur Verfügung.
PC-Lint / FlexeLint überprüft Ihren Quellcode auf typische C++- und C-Fehler und findet:
PC-Lint / FlexeLint kann überprüfen, ob Ihre C++-Quellen Scott Meyer's C++ Designregeln und Empfehlungen einhalten und findet z.B.:
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.