Hauptmenü

Untermenü

JavaScript - Fehlersuche - Debugging zur Laufzeit Teil 1

1. Die Abschnitte

2. Stop and go

Heute ist ja alles in Deutschland irgendwie "go". Coffee to go, Cut and go (welcher Friseur ist nur auf den Schwachsinn gekommen), Pommes to go und was weiß ich nicht noch für einen Humbug. Nun denn. "stop and go" steht ja ursprünglich für zäh fließenden Verkehr. Also das, was jeden Morgen und Abend auf dem Kölner Ring los ist. Fahren, anhalten, fahren, anhalten. Gut auf der Straße nervt das tierisch, aber beim Laufzeit-Debugging ist das eine wunderbare Sache. Und um euch das zu zeigen, nehmen wir uns die laufzeit_debugging.htm vor. Dort wird die Datei laufzeit_1.js eingebunden. Die laufzeit_2.js ist erst mal auskommentiert. Die benötigen wir später.

3. Das Prinzip

Um nun JavaScript Stück für Stück zu untersuchen, geht man so vor. Zuerst wählt man im Firebug den Punkt "Scripts" aus. Dann gibt es einfach gesagt zwei Möglichkeiten. Entweder befindet sich euer Code in einer HTML-Datei oder er wurde über eine oder mehrere Dateien per <script>-Tag eingebunden. Im letzteren Fall könnt ihr euch dann eine entsprechende Datei aussuchen.

Laufzeitdebugging 1

4. Der Haltepunkt

Den benötigt man, um Firebug mitzuteilen, an welcher Stelle er anzuhalten hat. Ohne den läuft das Script einfach durch.

Der Code


var arr_1 = new Array(14127);
var arr_2 = new Array(59219);
for (var 05i++)
{
  var res arr_1[i] + arr_2[i];
}

Das hier ist ein ziemlich simples Beispiel. Wir haben zwei Arrays und wollen einfach die jeweiligen Werte des identischen Indexes addieren. Um nun deren Werte zu überprüfen, setzen wir in der Schleife den Haltepunkt, indem wir einfach links neben die entsprechende Zeile klicken. Wenn ihr dann einen roten Punkt seht, ist alles in Ordnung.

Laufzeitdebugging 2

5. Debugging starten

Wenn ihr jetzt die Seite zum Beispiel mit "F5" aktualisiert, so ändern sich in der Anzeige zwei Dinge. Ich habe sie für die Blinden unter euch mal rot markiert.

Laufzeitdebugging 3

6. Nudel, nudel

Wenn ihr euch jetzt mal die Tableiste im Firefox anseht, so werdet ihr feststellen, dass der "loading"-Kreisel sich dreht und dreht und dreht. Das liegt daran, dass das Script noch nicht abgearbeitet worden ist, weil wir einen Haltepunkt gesetzt haben. Bevor wir uns jetzt da durchhangeln, werfen wir erst mal einen Blick auf den rechten Kasten.

Laufzeitdebugging 4

Die Zählvariable i steht auf 0 und res auf undefined. i ist ja soweit klar, aber was soll das mit res? Nun, ganz einfach. Das hängt mit der Verarbeitung zusammen. Denn der Wert wir erst gesetzt, wenn der jeweilige Abschnitt komplett durchlaufen ist.

Einen Schritt vor

Da klickt ihr einfach auf den blauen Pfeil. Und achtet bitte in rechten Box auf die Werte von i und res. Begriffen, wie das funktioniert? Sobald der blaue Pfeil nicht mehr blau ist, wurde der Code komplett abgearbeitet. So schwer war das nun nicht. Aber es gibt noch mehr Möglichkeiten.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt