Eckdaten

C-Stat ist ein Add-On für die statische Code-Analyse innerhalb der integrierten Entwicklungsumgebung der IAR Embedded Workbench. Neben der Fehlersuche auf Quellcode-Ebene überprüft C-Stat auch die Einhaltung von Codierungs-Standards, unter anderem Misra C:2004, Misra C++:2008 oder Misra C:2012.

Die statische Analyse findet unter anderem arithmetische Fehler wie Konvertierungsfehler oder Divisionen durch Null, Speichermanagementprobleme wie Speicherlecks oder „out of bounds“ verweisende Pointer sowie toten Code und die damit verbundenen Probleme. Weiterhin überprüft die statische Analyse, ob Codierungsstandards wie Misra C eingehalten werden und, bestimmte Code-Kostrukte, die gemäß den Richtlinien von Cert (Computer Emergency Response Team) oder CWE (Common Weakness Enumeration) als problematisch einzustufen sind, vermieden werden.

C-Stat ist das neue Add-On der IAR Embedded Workbench für die statische Analyse.

C-Stat ist das neue Add-On der IAR Embedded Workbench für die statische Analyse.IAR Systems

Einer der großen theoretischen Vorteile der statischen Analyse besteht darin, dass sie die Performance eines Systems nicht beeinträchtigt. Außerdem ist sie unabhängig von der Qualität der verwendeten Testwerkzeuge. Einen spezifischen Fehler in einem ausgeführten Code zu finden, hängt davon ab, wie die statische Analyse den jeweiligen Programmpfad mit einem spezifischen Datensatz ausführt. Aber ein Tool für statische Analyse kann – zumindest theoretisch – alle möglichen Wege durch den Code untersuchen.

Im Allgemeinen funktionieren statische Analysetools in der Embedded-Industrie selten auf Anhieb in der gewohnten Build-Umgebung, sondern benötigten ein hohes Maß an Konfiguration. Es gilt einiges zu verstehen, angefangen damit, wie Dateien zu finden sind bis hin zu der Frage, wie mit Spracherweiterungen für die effiziente hardwarenahe Programmierung umzugehen ist.

Voll integriert im Entwicklungsablauf

IAR Systems hat sich dem Thema statische Analyse aus der Perspektive seiner Kunden genähert. Das Ziel bestand darin, ein Produkt anzubieten, das eine Marktlücke füllt, indem es eine überzeugende Kosten-Nutzen-Relation liefert, sich einfach im Entwicklungsablauf nutzen lässt und dabei keinerlei Integration benötigt. Ferner sollte es in der Lage sein, eine Vielzahl von identifizierbaren Problemen zu finden und Code-Standards wie zum Beispiel verschiedene Misra-Regelwerke zu unterstützen.

Ohne aufwendiges Tool-Setup: In C-Stat ist es möglich, exakt festzulegen, welche Regeln zu prüfen sind.

Ohne aufwendiges Tool-Setup: In C-Stat ist es möglich, exakt festzulegen, welche Regeln zu prüfen sind.IAR Systems

Das Ergebnis ist C-Stat, ein Add-On für die vollständige C/C++-Compiler und -Debugger-Toolchain IAR Embedded Workbench. C-Stat ist komplett integriert in die Entwicklungsumgebung (IDE) und so einfach zu verwenden wie alle anderen Build-Tools. Ein umständliches Setup des Tools entfällt ganz und es gibt keinerlei Probleme mit der Sprachunterstützung oder anderen allgemeinen Build-Aufgabenstellungen. Der Entwickler hat, wenn er seine eigene Build-Umgebung entsprechend einstellt, vielmehr die Möglichkeit, seinen Code direkt in der Befehlszeile zu analysieren.

Statische Analyse mit C-Stat

C-Stat ist ein statisches Analysetool für C und C++ sowie aller Sprachkonstrukte, die die IAR Embedded Workbench unterstützt. Es lässt sich einfach in der Build-Toolchain aktivieren und vereinfacht so die Entwicklung des Codes, der direkt mit der Hardware vernetzt ist. C-Stat bietet eine innovative Technologie, die auf der Basis von Modellprüfungen und der Auflösung von Bedingungen Falschmeldungen vermeidet. Die Analyse identifiziert Code-Muster, die auffällig bis komplett falsch sind, wie zum Beispiel Puffer-Überläufe, arithmetische Fehler und Konvertierungsfehler sowie temporäre Zustände des Heapmanagements.

Das nutzerfreundliche C-Stat ist vollständig in die IDE der IAR Embedded Workbench integriert.

Das nutzerfreundliche C-Stat ist vollständig in die IDE der IAR Embedded Workbench integriert.IAR Systems

C-Stat erlaubt rund 250 individuelle Prüfungen, die sich aus fast 600 Vorschriften verschiedener Codierungsstandards und Richtlinien herleiten, darunter Regeln der Cert- und CWE-Initiative sowie Misra C:2012, Misra C++:2008 und Misra C:2004. Mit C-Stat kann der Entwickler sehr detailliert bestimmen, welche Regelwerke und Prüfungen er anwenden will. Für Checks, für die eine Analyse über mehrere Module hinweg von Vorteil ist, liefert C-Stat Informationen über Modulgrenzen hinaus. C-Stat lässt sich auch in einem Multi-File-Compilation-Modus ausführen, in dem die gesamte Quelle als ein einziges Modul analysiert wird, um so die Genauigkeit bestimmter Analysen zu erhöhen. Dank der umfangreichen Analyse und der engen Integration mit den Entwicklungstools können Entwickler die Risiken von Softwarefehlern minimieren – ohne den großen Konfigurationsaufwand, den herkömmliche Code-Analysetools erfordern.