You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

3.5 KiB

Übung Debugging

Aufgabenstellung

Klonen Sie das Projekt https://gogs.informatik.hs-fulda.de/Programmiermethoden_und_werkzeuge-public/UebungDebugging.git und führen Sie die Übung entsprechend den Anweisungen in der README.md-Datei aus.

Übung 1

Starten Sie das Programm mehrfach und geben Sie verschiedene natürliche Zahlen ein.
Eingabe: 45

  input: 45, Schleifenvariable: 2, Ergebnis 1
  input: 45, Schleifenvariable: 3, Ergebnis 0
  number 45 passed check: false

Sowohl die eingegebene Zahl, als auch die Schleifenvariable und ein ganzzahliges Ergebnis werden ausgegeben.

Notieren Sie die Inhalte der Variablen, nach Starten des Programms im Debug-Modus und Setzen eines Breakpoints in Zeile 35.
Eingabe: 45

  int i = 2;
  int nextInt = 45;
  this //Instanz des Programms
  out //PrintStream Objekt

Lassen Sie das Programm bis zum nächsten Halt weiterlaufen und notieren Sie die Inhalte der Variablen.

  int i = 3;
  int nextInt = 45;
  this //Instanz des Programms
  out //PrintStream Objekt

Notieren Sie die Inhalte der Variablen, nach Starten des Programms im Debug-Modus und Eingabe der Zahl 47.

  int i = 2;
  int nextInt = 47;
  this //Instanz des Programms
  out //PrintStream Objekt

Lassen Sie das Programm bis zum nächsten Halt weiterlaufen und notieren Sie die Inhalte der Variablen.

  int i = 3;
  int nextInt = 47;
  this //Instanz des Programms
  out //PrintStream Objekt

Lassen Sie das Programm erneut bis zum nächsten Halt weiterlaufen und notieren Sie die Inhalte der Variablen.

  int i = 4;
  int nextInt = 47;
  this //Instanz des Programms
  out //PrintStream Objekt

Die Variable "nextInt" zeigt stehts die eingegebene Zahl an. Die Variable "i" wird als Schleifenvariable verwendet, um die Zahlen von 2 bis zum eingegebenen Wert zu durchlaufen und den Rest der Division zu berechnen. Sie überprüft, ob die eingegebene Zahl durch eine andere Zahl ohne Rest teilbar ist.
Beim Starten in Debug-Modus läuft das Programm bis zum Breakpoint, durchläuft die Schleife ein Mal und gibt die Variablen aus. Deswegen ändert sich der Wert der Variable "i" immer wieder, wenn man das Programm bis zum nächsten Halt (der nächste Schleife) weiterlaufen lässt.

Übung 2

Starten Sie das Programm, nach Setzen eines Breakpoints in Zeile 40, im Debug-Modus und geben Sie die Zahl 45 ein. Notieren Sie den Inhalt der Variablen.

  int nextInt = 23;
  this //Instanz des Programms
  int count = 3;

In der Debug View waren insgesammt 9 Einträge:

  Thread[main]
    Uebung2.checkNumber(int)
    Uebung2.run()
    Uebung2.main(String[])
  Thread[Reference Handler]
  Thread[Finalizer]
  Thread[Signal Dispatcher]
  Thread[Notification Thread]
  Thread[Common-Cleaner]

Bei der Verwendung von "step over" ist der Debugger durch die Rekursive Methode wieder in Zeile 40.
Die Anzahl der Einträge in Debug View waren insgesammt 10:

  Thread[main]
    Uebung2.checkNumber(int)
    Uebung2.checkNumber(int)
    Uebund2.main(String[])
  Thread[Reference Handler]
  Thread[Finalizer]
  Thread[Signal Dispatcher]
  Thread[Notification Thread]
  Thread[Common-Cleaner]

Bei der erneuten Verwendung von "step over" ist der Debugger nun in Zeile 23.
Die Anzahl der Einträge in Debug View sind nun 8:

  Thread[main]
    Uebung2.run()
    Uebung2.main(String[])
  Thread[Reference Handler]
  Thread[Finalizer]
  Thread[Signal Dispatcher]
  Thread[Notification Thread]
  Thread[Common-Cleaner]