3.0 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.
input: 45, Schleifenvariable: 2, Ergebnis 1
input: 45, Schleifenvariable: 3, Ergebnis 0
number 45 passed check: false
- Beim Starten des Programms im Debug-Modus und Eingabe der Zahl 45, waren die Inhalte der Variablen folgende:
nextInt: 45
i: 2 - Bei der Verwendung von "resume", erhielt ich folgende Variableninhalte:
nextInt: 45
i: 3 - Beim Starten des Programms im Debug-Modus und Eingabe der Zahl 47, waren die Inhalte der Variablen folgende:
nextInt: 47
i: 2 - Bei der Verwendung von "resume", erhielt ich folgende Variableninhalte:
nextInt: 47
i: 3 - Bei der erneuten Verwendung von "resume", erhielt ich folgene Variableninhalte:
nextInt: 47
i: 4
Zusammenfassung
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 (die nächste Schleife) weiterlaufen lässt.
Übung 2
- Beim Starten des Programms im Debug-Modus und Eingabe der Zahl 45, waren die Inhalte der Variablen folgende:
nextInt: 23
count: 3\ - In der Debug View waren insgesammt 9Einträ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":\
- der Debugger steht in Zeile 40\
- Die Anzahl der Eintrage in Debug Viel waren insgesammt 10 (ein "Uebung2.checkNumber(int)" ist über dem ersten "checkNumber(int)" erschienen)\
- Bei der erneuten Verwendung von "step over"
- der Debugger steht in Zeile ...
- Die Anzahl der Eintrage in Debug Viel waren ...
Zusammenfassung
Der Algorithmus in Übung 2 ruft sich selbst auf. Zunächst wird beim Starten des Programms die Methode "Übung2.main(String[])" aufgerufen, welche daraufhin "Uebung2.run()" aufruft, um den Code auszuführen. Darauf folgt "Uebung2.checkNumber(int)". Die Zählvariable "count" wird initialisiert und dann in der Methode "checkNumber" verwendet, um zu einen bestimmten Zustand, Bedingung oder Eigenschaft der übergebenen Zahl zu überprüfen. Beim "step over"-Schritt wird die Schleife erneut ausgeführt, weshalb die Methode "checkNumber" ein weiteres Mal erscheint. Die Variable "nextInt" zeigt stehts die eingegebene Zahl an.