Debuggen mit Visual Studio 2019

Zum Testen eines Programms 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:

  1. Fügen Sie, wie im vorletzen Abschnitt gezeigt, der Projektmappe GettingStarted ein Projekt mit Namen Temperatur hinzu.
  2. Definieren Sie das neue Projekt als Standardprojekt.
  3. Fügen Sie dem Projekt eine leere Quellcode-Datei mit Namen Temperatur.c hinzu.
  4. 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;
    }
      
  5. Erstellen Sie das ausführbare Programm mit der Taste F7 oder wählen Sie im Menü Erstellen die Option Projektmappe erstellen.
  6. Starten Sie das Programm mit den Tasten Ctrl+F5.
  7. 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
    
    C:\Users\Rob\Documents\C-Code\GettingStarted\Debug\Temperatur.exe (Prozess "7968") wurde mit Code "0" beendet.
    Drücken Sie eine beliebige Taste, um dieses Fenster zu schließen.

Bei dem Programm ist offensichtlich etwas nicht in Ordnung. Da wir den Fehler nicht unmittelbar erkennen, soll jetzt der Debugger zum Einsatz kommen.

Symbolleiste für den Debugger

Wenn nicht schon geschehen, aktivieren Sie zunächst die Toolbar für den Debugger:

Symbolleiste: Debugger

  1. Klicken Sie mit der rechten Maustaste über eine der vorhandenen Toolbars.
  2. Wählen Sie im Kontextmenü die Option Debuggen.

Programm mit dem Debugger testen

Gehen Sie wie folgt vor:

  1. Suchen Sie in Ihrem Quellcode die Zeile, in der die Berechnung stattfindet (c = 5/9*(f-32);).
  2. Zeigen Sie mit der Maus auf den grauen Rand links neben der Zeile und betätigen Sie die linke Maustaste. Es erscheint ein Roter Punkt:

    Breakpoint im Quellcode

  3. Starten Sie Ihr Programm im Debug-Modus mit der Taste F5 oder mittels Menü Debuggen mit dem Eintrag Debuggen starten.

    Das Programm wird bis zum angegebenen Breakpoint ausgeführt. Die aktuelle Position wird durch den gelben Pfeil angezeigt.

    Breakpoint im Quellcode

    Im linken Teil des Ausgabebereichs mit der Reiterbeschriftung Autos können Sie den aktuellen Wert der Variablen f und c sehen. In diesem Bereich werden alle aktuellen Variablen gezeigt. Um bestimmte Variablen dauerhaft zu beobachten, fügen wir diese in einen gesonderten Bereich ein:

  4. Bewegen Sie die Maus über die Variable f, z.B. in der Zeile mit dem Breakpoint.
  5. Betätigen Sie die rechte Maustaste und wählen Sie aus dem Kontextmenü die Option Überwachung hinzufügen.

    Im Ausgabebereich ist jetzt der Reiter mit Namen Überwachen 1 aktiviert und es wurde die Variable f in die Liste eingetragen.

  6. Tragen Sie die Variable c in die Liste von Überwachen 1 ein.

    Es ergibt sich folgendes Bild im Ausgabebereich:

    Ausgabebereich: Überwachen 1

    Hinweis: Der Wert der Variable c kann bei Ihnen anders sein.

  7. Betätigen Sie nun mehrfach die Taste Taste: Debug-Step, um sich schrittweise durch das Programm zu arbeiten.
  8. Zum Beenden des Debuggers betätigen Sie die Taste Taste zum Stoppen des Debuggers.

    Das Problem in dem Programm ist, dass bei der Berechnung von links mit 5/9 begonnen wird. Da Dividend und Divisor beide vom Typ int sind, ist auch das Zwischenergebnis vom Typ int und wird in Richtung null gerundet (d.h. es werden alle Nachkommastellen abgeschnitten). Damit nimmt auch der gesamte Ausdruck den Wert null an. Mehr dazu in der Vorlesung, bzw. im Skript zur Vorlesung.

  9. Ändern Sie die Zeile zu

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

  10. Testen Sie Ihr Programm erneut. Es sollte sich folgende Ausgabe ergeben:
      Fahrenheit - Celsius
              0 - -17.8
             50 -  10.0
            100 -  37.8
            150 -  65.6
            200 -  93.3
            250 - 121.1
            300 - 148.9
      
      C:\Users\Rob\Documents\C-Code\GettingStarted\Debug\Temperatur.exe (Prozess "14760") wurde mit Code "0" beendet.
      Drücken Sie eine beliebige Taste, um dieses Fenster zu schließen.
Seite 9