Schwerpunkte

Multithreaded-Embedded-Code

5 Tipps gegen die »dunkle Seite« von Software

07. Juni 2021, 06:00 Uhr   |  Von Dr. Johan Kraft

5 Tipps gegen die »dunkle Seite« von Software
© Wright Studio | Shutterstock

Fehler in Software zu lokalisieren kann zeitaufwendig und mühevoll sein, insbesondere in komplexer Software für Multithread-Anwendungen. Hier bieten leistungsfähige Werkzeuge eine wirkungsvolle Unterstützung – wenn sie methodisch richtig eingesetzt werden.

Um schneller mit qualitativ hochwertigen Produkten auf den Markt kommen zu können, brauchen Unternehmen tieferen Einblick in die »dunkle Seite des Codes«, also das tatsächliche Verhalten der gesamten Software eines Systems.

Zwischen dem erwünschten und dem tatsächlichen Verhalten können enorme Unterschiede bestehen, die sich nicht aus dem Quellcode ablesen lassen und mit Funktionstests nur schwierig aufzudecken sind. Sobald Anwendungen an Komplexität gewinnen, wächst die Herausforderung für Entwickler von Multithreaded-Embedded-Software, die auf einem RTOS oder einem Linux-Kernel läuft.

Nachfolgend werden fünf bewährte Maßnahmen beschrieben, mit denen sich mehr Einblick in das Echtzeitverhalten auf der Systemebene gewinnen lässt, um die Produktqualität zu steigern und die Entwicklung zu beschleunigen.

1. Visuelle Zeitleiste zur Fehlererkennung

Softwarefehler, die beim Ausführen von Multithreaded-Software auftreten, sind oft schwer zu beheben. Zum Glück lassen sich Probleme und Unklarheiten durch bessere Einblicke während des Debuggings reduzieren.

Die Darstellung der Softwareausführung in einer Zeitleiste erleichtert Entwicklern die Fehlersuche
© Percepio

Die Darstellung der Softwareausführung in einer Zeitleiste erleichtert Entwicklern die Fehlersuche.

Diese erleichtern zudem das Aufdecken der Ursachen, sodass die Fehler ordnungsgemäß behoben werden können und das Debugging weniger Zeit beansprucht. Die Möglichkeit, sich die Ausführung der Software auf einer visuellen Zeitleiste (Bild rechts) anzeigen zu lassen, ist in vielen Szenarien hilfreich – unter anderem dann, wenn sich anhand der ursprünglichen Symptome nicht bestimmen lässt, wo genau der Fehler zu lokalisieren ist. Oder wenn das Problem schwierig zu reproduzieren ist. Oder wenn die Verwendung traditioneller Debugging-Tools ausscheidet, da diese die Verarbeitung unterbrechen würden.

Wie steht es mit dem Debugging per »printf«? Die althergebrachte Praxis, zu Debugging-Zwecken Print-Anweisungen in den Applikationscode einzufügen, ist riskant, intrusiv und nicht auf komplexere Applikationen und schnellere Prozessoren skalierbar. Die printf-Funktion ist nicht für diesen Zweck gedacht und mit mehreren Millisekunden pro Nachricht meist auch recht langsam. Im Gegensatz dazu stützt sich die visuelle Trace-Diagnose auf optimierte Methoden für das Software-Tracing und ist etwa 100-mal schneller als printf-Aufrufe, sodass ohne spürbare Auswirkungen wesentlich mehr Informationen erfasst werden können. Hinzu kommt, dass es mit Datenvisualisierungstechniken ein Leichtes ist, Software-Traces in aussagefähige Erkenntnisse zu übertragen.

2. Systemtests überwachen, für schwer greifbare Probleme

Das fortlaufende Live-Streaming von Trace-Daten gibt Entwicklern die Möglichkeit, über lange Zeitspannen hinweg ein vollständiges Bild der Software aufzuzeichnen und zu visualisieren.

Mit der kontinuierlichen Aufzeichnung von Trace-Daten lassen sich Fehler in der Software lokalisieren, die nur sporadisch auftreten oder schwer zu reproduzieren sind
© Shutterstock

Mit der kontinuierlichen Aufzeichnung von Trace-Daten lassen sich Fehler in der Software lokalisieren, die nur sporadisch auftreten oder schwer zu reproduzieren sind.

Damit können schwer fassbare Softwarefehler aufgedeckt werden, die sonst schwierig zu reproduzieren und zu beseitigen sind. Auf diese Weise lassen sich etwaige Unstimmigkeiten in den Trace-Aufzeichnungen erfassen und ihre Ursachen ermitteln. Ebenso lässt sich herausfinden, weshalb ein System nach einem mehrstündigen Stresstest abstürzt. Die visuelle Trace-Diagnose mit Percepio Tracealyzer bietet zum Beispiel die Möglichkeit, live eine animierte Ansicht des Laufzeitsystems zu sehen, Anomalien in den abstrakten visuellen Darstellungen und Statistiken zu erkennen und sich daraufhin zu den jeweiligen Ereignissen vorzuarbeiten, um genau zu ermitteln, was passiert ist.

Seite 1 von 2

1. 5 Tipps gegen die »dunkle Seite« von Software
2. 3. Softwareentwicklung verbessern

Auf Facebook teilen Auf Twitter teilen Auf Linkedin teilen Via Mail teilen

Verwandte Artikel

Percepio AB