Bug

Aus C64-Wiki
Wechseln zu: Navigation, Suche

Das englische Wort Bug ist eine auch im deutschen Sprachraum übliche Bezeichnung für Fehler in Computersysteme und betrifft Programmfehler bzw. Programmierfehler in Software (engl. software bug) und Konstruktions- und Designfehler der Hardware (engl. hardware bug).
Das Wort bedeutet ursprünglich übersetzt Käfer und etablierte sich im 19. Jahrhundert für kleinere Fehler in mechanischen und elektrischen Bauteilen. Ein Knistern oder Rauschen in der Telefonleitung wurde scherzhaft kleinen Käfern, die an der Leitung knabbern bzw. zwischen diesen Kurzschlüsse oder ein Signalübersprechen hervorriefen, zugeschoben.

Die Ursachen sind u.a. falsche Umsetzung und unerwartete Laufzeitumgebungen, Ungenauigkeiten, fehlende oder fehlerhafte Programmcodes, aber auch unpassende Bedienung von Programmen durch den Anwender.
Derartige Programmfehler können in leichten Fällen die konforme Bedienung behindern oder zum Absturz des Programms mit Fehlermeldung und sogar zu Datenverlust führen. In schweren Fällen hängt sich das Computersystem auf und muss erneut gebootet bzw. gestartet werden.

Bugs sind zwar ärgerlich, werden aber gerne zur Manipulation des Programms oder zum Eindringen in ein Computersystem ausgenutzt.
Bei Computerspielen sehen Spieler Bugs als Vorteile und nutzen diese aus, um zu cheaten. Kleinere Fehler, die das Programm nicht beeinträchtigen, zum Beispiel in der Grafikdarstellung, sind auch Bugs. Nobler auch gerne, leicht verharmlosend, als Artefakte bezeichnet.

Ein Programm, das ein anderes Programm aktualisiert und dabei Fehler entfernt, nennt man Bugfix. Man spricht dann von einer "gefixten Version". In diesem Zusammenhang tritt auch oft der Begriff Patch (dt. Flicken) auf, der hier üblicherweise hilft einen Bug zu beseitigen. Generell umfasst dieser Begriff aber jede kleine, nachträglich angewendete Änderung an Programmen (sei es im Quelltext oder im Programmcode), die z.B. auch ein Freischalten von gesperrten Programmfunktionen oder das Entfernen einer Kopierschutzabfrage zum Ziel haben kann. Da ein Bugfix gleichzeitig ein Update oder Upgrade darstellt, kann sich mit dem Einspielen auch die Versionsnummer des Programms ändern.
Man spricht auch von einem Bugfix, wenn ein Programmierer die Änderungen direkt am fehlerhaften Programm durchführt.

Programme, die als Hilfsmittel zur Fehlersuche und -behebung dienen, werden Debugger genannt.

Inhaltsverzeichnis

[Bearbeiten] Definition eines Programmierfehlers

Ein Programm- oder Softwarefehler ist, angelehnt an die allgemeine Definition für Fehler: "Die Nichterfüllung einer festgelegten Forderung" (DIN ISO 8402).

Konkret definiert sich der Fehler danach als "Abweichung des IST (beobachtete, ermittelte, berechnete Zustände oder Vorgänge) vom SOLL (festgelegte, korrekte Zustände und Vorgänge), wenn sie die vordefinierte Toleranzgrenze (die auch 0 sein kann) überschreitet."

[Bearbeiten] Bugs im Commodore 64

Von einem Hardwarebug waren auch die ersten beiden Modelle des C64 betroffen. Die erste Revision des BASIC 2.0 hatte einige schwerwiegende Fehler, die bei bestimmten Farbkombinationen oder Tastatureingaben für Hänger des Computers sorgten. Commodore überarbeitete die Bugs und implementiere vorerst Revision 2 in den Rechnern, welche aber immer noch einige Fehler aufwies. Die endgültige, fehlerfreie Version war Revision 3.
Anmerkung: Durch Eingabe von POKE 1024,1 im Startscreen kann man die Revision des C64 erkennen. Bei Rev. 1 taucht in der linken oberen Bildschirmecke der Buchstabe A in weiß auf, bei Rev. 2 in dunkelblau (auf dem Hintergrund nicht erkennbar, es ist also de facto nichts zu sehen) und bei Rev. 3 ist das A hellblau. Die meisten C64 wurden mit Rev. 3 ausgeliefert. Ausnahmen: Bugs never fixed

[Bearbeiten] Bugs in C64-Spielen (Auszug)

(thumbnail)
Ein harmloser Bug ohne nachteilige Wirkung. Giana Sisters, Stage 30.
  • The Great Giana Sisters
    In Level 30 gibt es ein grünes Bonusitem (Ball, Blitz, etc.), welches nicht aufgesammelt werden kann. Es wurde vergessen den Itemspender an dieser Stelle einzubauen, so ist nur das nicht aktive Item-Sprite zu sehen.
  • Asterix&Obelix
    Wenn ein Gegenstand abgelegt wurde, wurde die Anzahl der Gegenstände im Inventar nicht vermindert. Da das Inventar aber auf ein Maximum von fünf Gegenständen limitiert war, ließ sich der Beutel am Ende des Spiels unter Umständen nicht mehr aufnehmen, das Spiel konnte nicht beendet werden.
  • Asterix and the Magic Cauldron
    Das Spiel ist nicht lösbar, da ein Teil des Kessels nicht gefunden werden kann. Das Teil befindet sich zwar beim Triumphbogen, wird aber durch eine Mauer verdeckt und kann so nicht aufgenommen werden.
  • Stein der Weisen (Public Domain)
    Wenn man im Besitz des Dynamits ist, und den Befehl "sprengen" im falschen Raum eingibt, führt dies zu einem Programmabbruch (sollte eigentlich den Tod der Spielfigur bewirken). Außerdem wurde vergessen, beim Programmstart auf den zweiten Zeichensatz umzuschalten.
  • They Stole a Million
    Das Narburak-Museum wurde fehlerhaft programmiert. Eine der Alarmanlagen geht auch dann los, wenn bereits alle drei Anlagen außer Betrieb gesetzt wurden. Auch die gesuchte Maske befindet sich allen Vitrinen, was die Sache sehr erleichtert..
  • Maniac Mansion
    Wenn man Nurse Edna aus der Küche lockt, steht sie beim anschließenden Betreten der selben, wieder darin - um sich kurz darauf aufzulösen.
  • Bomb Squad
    Wenn im Titelscreen "FX" (mit F7 ) eingestellt wird, stürzt das Spiel nach Aufbau des Labyrinths ab. Dies betrifft auch viele Crackversionen.
  • California Games
    Die Punkteanzahl reicht bis maximal 65535. Darüber hinaus fängt der Zähler wieder bei Null an.
  • Commando
    Sollte man über 1.000.000 Punkte schaffen, findet ein Zahlenüberlauf statt und das Spiel beginnt wieder von "000.000" an zu zählen. Dies betrifft auch den Eintrag in die Highscoreliste.
  • Ghosts'n Goblins
    Beim letzten Endgegner ist die Kollisionsabfrage der Spielfigur fehlerhaft, wenn man sich direkt rechts ans Tor stellt. Dies hat zur Folge, dass eure Spielfigur von den gegnerischen Schüssen nicht getroffen werden kann.
  • Airborne Ranger
    Die Mission in der man das Radar Array zerstören soll, stürzte bei einigen Versionen während des Ladevorgangs ab. Das Drücken von Run/Stop  setzt das Spiel aber fort.

Trotz Testläufen kommt es bis heute recht häufig vor, das Software mit teilweise gravierenden Fehlern in den Handel kommt. Der Grund ist meist Zeitdruck, da die Marketingabteilungen den geplanten Veröffentlichungstermin nur ungern verschieben wollen. Viele dieser Bugs wurden später gefixt, heutzutage meist von den Herstellerfirmen. Im 8-Bit-Zeitalter geschah dies häufiger durch Crackergruppen. Nach wie vor werden alte C64-Spiele von interessierten Fans der Szene verbessert und auf den bekannten Downloadseiten zur Verfügung gestellt. Links zu bugfreien Versionen werden in den entsprechenden Spieleartikeln empfohlen.

[Bearbeiten] Trivia

Was streng genommen ein Bug ist, sorgte bei dem Arcadegame Space Invaders für einen erhöhten Schwierigkeitsgrad: Durch Entlastung von CPU und Speicher stieg die Geschwindigkeit des letzten Raumschiffes deutlich an, was zu einem markanten Merkmal des Spiels wurde. Beabsichtigt war dieser Effekt von den Programmierern ursprünglich nicht. Außerdem enthielt die Version für die Konsole Atari 2600 einen weiteren Bug, der sich als Cheat einsetzen ließ: In ausgeschaltetem Zustand musste nur der Reset-Schalter gedrückt und gehalten werden. Dann wird das Gerät eingeschaltet. Der Effekt war, dass der Spieler nun statt eines Schusses auf dem Bildschirm gleichzeitig zwei Schüsse abgeben kann. Dieser Programmfehler hat mit dem Zweispielermodus zu tun.

[Bearbeiten] Weblinks

WP-W11.png Wikipedia: Programmfehler
WP-W11.png Wikipedia: Software_bug Sprache:english
In anderen Sprachen