NEU: WHITE PAPER
NEU: WHITE PAPER
NEU: WHITE PAPER
NEU: WHITE PAPER
NEU: WHITE PAPER

Neue Anforderungen aus dem "Consumer Umfeld" steigern die Komplexität von eingebetteten Systemen immer weiter, hinzu kommt ein überhitzter Bauteilemarkt.

In diesem White Paper stellen wir Ihnen drei Wege vor, die zu einer erfolgreichen und robusten Embedded-Plattform führen.

>> zum White Paper

05.09.2016 | Fachthema

Debugging - Bug oder Feature?

Verwendete Tags:
Elektronik
Embedded
Embedded Linux
Embedded System
Software
Debugging

Debugging

Schädlinge finden - Bug oder Feature?

Kein Programm ist fehlerfrei. Mit der Komplexität und dem Umfang von Software steigt die Wahrscheinlichkeit, dass Fehler vorhanden sind. Sehr oft treten diese Fehler nur in ganz bestimmten, verzwickten Situationen auf. Die Suche und Beseitigung ist aufwändig und benötigt Erfahrung. Zur Unterstützung gibt es dafür spezielle Werkzeuge, sogenannte Debugger.

Fehler in Softwareprogrammen werden „Bugs“ genannt. Bug ist Englisch und heißt  Käfer. Der Name stammt wirklich von einem Insekt als Fehlerursache. In der Vergangenheit wurden nämlich manche Rechenmaschinen mit mechanischen Relais aufgebaut. Zwischen den Kontakten so einer Maschine hatte sich einmal eine Motte verklemmt. Die Funktion des Systems wurde dadurch gestört. Nach mühsamer Suche kam man dem Fehler auf die Spur und entfernte das störende Tier. Das System wurde „debugged“.

Natürlich sind Fehler in heutigen Softwaresystemen nicht mehr ganz so offensichtlich. In vielen tausend Codezeilen sind die Bugs nicht so einfach zu finden.
Debugger sind Software Werkzeuge die es erlauben, den Ablauf eines Programms genauer zu durchleuchten und zu kontrollieren. Mit dem Debugger kann man zum Beispiel den Wert von Variablen oder Prozessorregister während des Programmlaufs beobachten. Oder man kann das Programm an bestimmten Punkten oder unter bestimmten Bedingungen anhalten lassen um den Status zu kontrollieren. Auch das schrittweise Abarbeiten eines Programms ist mit einem Debugger möglich. Auf diese Art und Weise macht man die inneren Vorgänge eines Programms sichtbar und kommt Programmier- oder Denkfehlern schneller auf die Schliche.

So könnte es der Fall sein, dass ein Programm falsche Ergebnisse liefert oder in ganz bestimmten Situationen abstürzt. Die Vorgänge bei den Berechnungen im Programm könnte man einfach Schritt für Schritt im Debugger beobachten und so erkennen, wie und wo ein falsches Ergebnis produziert wird. Die Fehlerquelle wird im Programm beseitigt und man kontrolliert neuerlich den Ablauf, bis der Fehler nicht mehr sichtbar ist. Bei Programmabstürzen versucht man zu erkennen unter welchen Randbedingungen so ein Absturz passiert. Man versucht dann diese Situation nachzustellen und im Debugger zu beobachten, wie das Programm abgearbeitet wird, und ob etwa falsche Berechnungen – z.B. eine Division durch 0 – zu Ausnahmesituationen führen. Ein Debugger ist nur ein Werkzeug, quasi eine Lupe auf die inneren Abläufe eines Programms. Ein Debugger findet Fehler nicht von selbst. Hierfür sind Kreativität und viel Erfahrung des Software Entwicklers gefragt.

 

 

Bild: © absent84 | Fotolia

 

 

Kontakt

Sie haben Fragen

oder möchten Kontakt aufnehmen?