ValueAnalyzer führt statische Analysen zur Bestimmung von Wertebereichen
von Variablen, Registern und Speicherzellen durch. Damit ermöglicht er insbesondere:
- den Nachweis, daß in einem eingebetteten System
keine ungültigen Speicherzugriffe auftreten – insbesondere nicht
aus Softwaremodulen heraus, die von Dritten als Objektcode geliefert wurden
- Initialisierungsanalysen, die die Genauigkeit von statischen Analysen des Stackverbrauchs und der Ausführungszeit erhöhen
Erkennung von ungültigen Zugriffen
In komplexen sicherheitskritischen Softwaresystemen werden oft
Module von Drittanbietern als Objektcode integriert. Dabei ist es
schwierig, zu überprüfen, ob solche Third-Party-Module tatsächlich
nur das tun, was sie tun sollen:
- sie könnten Lese-/Schreibzugriffe auf Variablen ausführen, auf die sie nicht zugreifen dürfen
- sie könnten Funktionen aufrufen, die sie nicht aufrufen dürfen
Typische Ursachen für solche ungültigen Zugriffe sind:
- Programmierfehler (z. B. Feldzugriffe außerhalb der gültigen Feldgrenzen)
- Nichteinhaltung von Spezifikationen
- Compiler- oder Linker-Fehler
Ungültige Zugriffe können zu Problemen beim Systemeinsatz führen
und darüberhinaus Lizenz- oder Haftungsfragen aufwerfen.
ValueAnalyzer bietet die Lösung dieser Probleme. Er führt eine statische Analyse
von Objektcode durch und meldet mögliche Verletzungen Ihrer Spezifikationen.
Initialisierungsanalysen
In eingebetteter Kontrollsoftware ist es üblich, globale Datenstrukturen
wie z. B. Funktionspointer in einem gesonderten Code-Bereich zu initialisieren.
Bei statischen Analysen der Worst-Case-Laufzeit oder des
Stackverbrauchs einzelner Tasks sind
diese Initialisierungen folglich unbekannt. Das führt zu ungenaueren Analyseergebnissen
und verlangt nach mehr Annotationen von Hand.
Mit ValueAnalyzer können Sie Initialisierungsdaten für globale Variablen
vollautomatisch einsammeln und den darauffolgenden Stack-, Timing- oder auch
weiteren Value-Analysen als automatisch erzeugte Annotationen zur Verfügung stellen.
Erkennung von totem Code
Aktuelle Entwicklungsstandards wie DO-178B verlangen die Entfernung von unerreichbarem Code.
Um den Testaufwand gering zu halten, sollte dies möglichst früh im Entwicklungsprozeß geschehen.
ValueAnalyzer entdeckt toten Code vollautomatisch und gibt Ihnen zudem die Sicherheit,
daß dieser Code tatsächlich unter allen Umständen nachweislich unerreichbar ist.
Features
- Interaktive Erkundung der Analyseergebnisse:
Register- und Speicherzelleninhalte werden für jede Instruktion in jedem
Ausführungskontext angezeigt.
- Ausführliche Angaben zu:
- Zugriffen auf Speicherbereiche
- Funktionsaufrufen
- Speicherzugriffen aus gewählten Funktionen heraus
- Register- und Speicherinhalten eingangs/ausgangs gewählter Funktionen
- Überprüfung von benutzerdefinierten Eigenschaften, z. B.:
- ob bestimmte Instruktionen auf bestimmte Speicherbereiche zugreifen
- ob bestimmte Speicherbereiche tatsächlich „read-only” oder
„write-only“ sind
- Automatische Erkennung von unerreichbarem Code.
-
Nahtlose Integration mit AbsInt-Tools zur Analyse der
Laufzeit und des
Stackverbrauchs
in einer gemeinsamen Benutzeroberfläche.
- Plugin für Jenkins, das führende Open-Source-System zur kontinuierlichen Integration.
Ihre Vorteile
- Die Analyse läuft vollautomatisch und erfordert keine Ausführung des Systems
mit konkreten Eingabewerten. Die Analyseergebnisse sind für alle möglichen Eingaben
und Ausführungsszenarien gültig.
- Die Analyse ist konservativ, d. h. die Ergebnisse sind verläßlich.
Alle ungültigen Zugriffe, die auftreten können, werden auch gemeldet.
- Software von Drittanbietern kann direkt analysiert werden. Sie muß nicht erst auf der
ECU integriert werden.
Unterstützte Prozessoren und Compiler
ValueAnalyzer ist erhältlich als ein Zusatzmodul für
aiT,
StackAnalyzer oder
TimingProfiler
und unterstützt alle entsprechenden Prozessor–Compiler-Kombinationen.
Jetzt testen
Testen Sie ValueAnalyzer kostenlos und unverbindlich an Ihren eigenen Anwendungen.