Qualitätssicherung

Tracing und Visualisierung in Linux-basierten Embedded-Systemen

13.05.14 | Autor / Redakteur: Johan Kraft * / Franz Graser

Bild 1: Hauptansicht von Tracealyzer mit Scheduling und verschiedenen Ereignissen
Bild 1: Hauptansicht von Tracealyzer mit Scheduling und verschiedenen Ereignissen (Bild: Percepio)

Tracing ist eine wichtige Methode, um Programmfehlern in Embedded-Systemen auf die Spur zu kommen. Visualisierungs-Tools helfen bei der Einordnung der Tracing-Resultate.

Das Debugging kann ein anspruchsvoller und zeitraubender Faktor bei der Entwicklung von Embedded-Systemen sein. Schließlich wirft das Aufdecken eines Fehlers bei der Programmausführung die Frage auf, wie die Software in den fehlerhaften Zustand geraten ist, welche Kombination von Eingangssignalen und zeitlichen Abläufen den Fehler verursacht hat und warum der Fehler auftrat.

Die Antworten auf diese Fragen lassen sich häufig durch Tracing finden. Beim Tracing wird das Verhalten der Software zur Laufzeit aufgezeichnet, sodass die gesammelten Trace-Daten nachträglich analysiert werden können. Auch wenn das Tracing meist während der Entwicklung erfolgt, eignet es sich gut für den Produktionseinsatz. Es ist dann ununterbrochen aktiv und kann Fehler erfassen, die nach dem Deployment auftreten.

Dieses Production Tracing kann eine effektive Technik zum Aufdecken von Fehlern sein, die selten vorkommen und sich deshalb mit einem Debugger schwierig reproduzieren lassen. Das Tracing kann in der Hardware (also im Prozessor) oder softwaremäßig erfolgen. Während das Hardware-Tracing eine detaillierte Historie der verarbeiteten Befehle liefert, konzentriert sich das softwarebasierte Tracing auf ausgewählte Ereignisse, üblicherweise im Betriebssystem und an Schnittstellen auf der Applikationsebene.

Per Hardware generierte Traces enthalten Details zum Kontrollfluss und haben keine Rückwirkungen auf die Arbeitsweise des untersuchten Systems. Diese Technik setzt aber spezielles Equipment und eine für das Tracing geeignete Hardwareplattform voraus.

Das Software-Tracing kommt dagegen ohne besondere Hardware aus und lässt sich sogar in bereits im Einsatz befindlichen Produkten installieren – ähnlich wie die Blackbox in einem Flugzeug. Das Software-Tracing ermöglicht außerdem das Abspeichern von Daten, während das Hardware-Tracing in der Regel auf den Kontrollfluss beschränkt ist.

Ergänzendes zum Thema
 
Komplexe Trace-Daten besser verstehen

Das Software-Tracing belastet zwar die CPU, jedoch beträgt der Overhead üblicherweise weniger als ein Prozent. Zum Abspeichern der Trace-Daten ist das Software-Tracing (zumindest anfangs) auf das RAM des Systems angewiesen. Normalerweise sind die RAM-Puffer jedoch konfigurierbar, sodass die richtige Balance zwischen dem Speicherbedarf und der Länge der aufgezeichneten Verarbeitungshistorie gefunden werden kann.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Kommentar abschicken

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 42675792 / Software-Test & -Betrieb)

Embedded Software Engineering Report abonnieren

4 mal jährlich: Die kostenlose Pflichtlektüre für Embedded­-Software- und Systems-Entwickler, von Analyse bis Wartung und Betrieb

* Ich bin mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung und AGB einverstanden.
Spamschutz:
Bitte geben Sie das Ergebnis der Rechenaufgabe (Addition) ein.