Ein Programm mit dem Debugger testen

Zum Test eines Programm ist es häufig nicht ausreichend, das äußere Verhalten zu studieren. Als Hilfsmittel gibt es hierfür den sogenannten Debugger. (Ein Bug ist ein Fehler, ein Debugger ist somit ein "Entfehlerer".) In diesem Abschnitt erstellen wir zunächst ein Programm zur Temperaturumrechnung von Fahrenheit in Celsius. Danach wollen wir das Programm mit dem Debugger untersuchen.

Das Programm Temperatur erstellen

Gehen Sie wie folgt vor:

  • Erstellen Sie ein leeres Projekt mit Namen Temperatur.
  • Fügen Sie dem Projekt eine leere Quellcode-Datei mit Namen Temperatur.c hinzu (siehe hello world).
  • Geben Sie folgenden Quellcode ein:
    #include <stdio.h>
    
    int main()
    {
        float f, c;
    
        printf("Fahrenheit - Celsius\n");
        f = 0;
        while(f<=300) {
            c = 5/9*(f-32);
            printf("%9.0f  -  %5.1f\n", f, c);
            f = f+50;
        }
    
        return 0;
    }
      
  • Erstellen Sie das ausführbare Programm mit der Taste Taste: Erstellen.
  • Starten Sie das Programm mit der Taste Taste: Ausführen.
  • Es sollte sich folgende Ausgabe ergeben:
    Fahrenheit - Celsius
            0  -    0.0
           50  -    0.0
          100  -    0.0
          150  -    0.0
          200  -    0.0
          250  -    0.0
          300  -    0.0
    Press any key to continue
      

Bei dem Programm ist offensichtlich etwas nicht in Ordnung. Da wir das Problem von außen nicht erkennen können, soll jetzt der Debugger zum Einsatz kommen.

Symbolleiste für den Debugger

Zunächst brauchen wir die Symbolleiste für den Debugger und wollen diese außerdem anpassen:

  • Wählen Sie im Menü Extras die Option Anpassen....
  • Wählen Sie den Reiter Symbolleisten.
  • Aktivieren Sie im linken Bereich die Checkbox neben dem Eintrag Debug.
    Symbolleisten
  • Wählen Sie den Reiter Befehle.
  • Wählen Sie links die Kategorie Debug aus.
    Befehl hinzufügen
  • Schieben Sie die Taste Taste: Debug starten mit gedrückter linker Maustaste auf das linke Ende der Debug-Symbolleiste.
  • Schieben Sie die Taste Taste: Haltepunkt mit gedrückter linker Maustaste auf das rechte Ende der Debug-Symbolleiste.
  • (Hinweis: Zum entfernen einer Taste der Symbolleiste schieben Sie diese mit gedrückter linker Maustaste aus den Bereich der Sysmbolleisten heraus.)
  • Klicken Sie auf Schließen.
  • Jetzt sollte die Symbolleiste für den Debugger sichtbar sein:
    Symbolleiste: Debugger

Programm mit dem Debugger testen

Gehen Sie wie folgt vor:

  • Gehen Sie in Ihrem Quellcode mit den Kursor auf die Zeile, in der die Berechnung stattfindet (c = 5/9*(f-32);).
  • Setzen Sie einen Haltepunkt mit der Taste Taste: Haltepunkt.
  • Starten Sie Ihr Programm mit der Taste Taste: Debug starten.
    Das Programm startet, der Navigationsbereich verschwindet und im unteren Bereich erscheinen oberhalb des Ausgabebereichs zwei neue Bereiche.
  • Betätigen Sie mehrfach die Taste Taste: Überwachung zum Anzeigen und Verbergen des Überwachungsbereichs.
    In diesem Bereich wird der Inhalt von aktuellen Variablen angezeigt.
  • Betätigen Sie mehrfach die Taste Taste: Variablen zum Anzeigen und Verbergen des Bereichs zur Betrachtung von Variablen.
    In diesem Bereich kann gezielt der Inhalt von Variablen angezeigt werden.
  • Aktivieren Sie den Überwachungs- und Variablenbereich.
  • Tragen Sie im Variablenbereich in der Spalte Name untereinander die Variablennamen f und c ein. Es ergibt sich folgender Variablenbereich:
    Variablenbereich
    Hinweis: Der Wert der Variable c kann bei Ihnen anders sein.
  • Betätigen Sie nun die Taste Taste: Debug-Step um sich schrittweise durch das Programm zu arbeiten.

Das Problem in dem Programm ist, dass bei der Berechnung von links mit 5/9 begonnen wird. Da Divisor und Dividend beide vom Typ int sind, ist auch das Zwischenergebnis vom Typ int und wird richtung null gerundet. Damit nimmt auch der gesamte Ausdruck den Wert null an. Mehr dazu in der Vorlesung, bzw. im Skript, das Sie auf der Seite Vorlesung PR1 herunterladen können.

Ändern Sie die Zeile zu

    c = 5*(f-32)/9;

und testen Sie Ihr Programm erneut. Es ergibt sich folgende Ausgabe:

    Fahrenheit - Celsius
            0  -  -17.8
           50  -   10.0
          100  -   37.8
          150  -   65.6
          200  -   93.3
          250  -  121.1
          300  -  148.9
Seite 0