- Joined
- Jul 11, 2020
- Messages
- 0
- Reaction score
- 25
- Points
- 0
Hier ein kleines von mir erstelltes Tutorial, wie ihr in Eclipse (Funktioniert genauso wie in Intellij, nur dass die Buttons wo anders sind) richtig debuggt, um Crashes selber fixen zu können.
In jeder halbwegs guten IDE ist ein sogenannter Debugger vorhanden.
Ein Debugger ermöglicht das Aufspüren von Fehlern in einem Programm.
Hier seht ihr (anhand von Eclipse) alle wichtigen Elemente eines Debuggers:
Ich gehe diese Begrifflichkeiten jetzt einmal im Schnelldurchlauf druch:
Click here to debug: Startet den Debugger
Step into: Springt zu einer bestimmten Stelle im Code
Step over: Macht einen Schritt vorwärts.
Step out of: Springt aus einem bestimmten Bereich raus.
List of breakpoints: Zeigt alle Breakpoints an.
Object browser: Zeigt alle Objekte und deren Werte an.
Outline view of current code location: Zeigt den Ort des ausgewählten Codes an.
Last breakpoint: Zeigt den letzten durchgangenen Breakpoint an.
Current line of code: Zeigt die Stelle des Codes, die das Programm momentan durchgeht.
Call stack of current Thread: Zeigt den Stack des momentanen Threads an.
Run to next breakpoint: Springt zum nächsten Breakpoint
End program: Beendet das Programm und somit auch den Debugger.
Ein Breakpoint ist ein Punkt den ihr an einer bestimmten Zeile des Programms setzen könnt, bei dem der Debugger anhält und euch alle oben gezeigten Daten anzeigt.
Diesen Punkt könnt ihr links neben dem Code platzieren:
Wenn euer Client also bei Zeile 41. in der Klasse KillAura crasht, dann schaut ihr als erstes, was die Fehlermeldung ist und Googelt diese, um mehr Informationen herauszufinden.
(In erster Linie warum sie auftritt.)
Ich nehme als Beispiel jetzt die allseits bekannte NullPointerException.
Diese Exception tritt dann auf, wenn des Programm probiert auf ein Objekt zu zugreifen, das den Wert Null enthält.
Um das Problem zu lösen, muss die Referenz initialisiert werden.
Wir setzen also in Zeile 41. in der Klasse KillAura einen Breakpoint und debuggen das Programm.
Wenn diese Zeile nun aufgerufen wird, hält das Programm an ("Keine Rückmeldung")
und ihr seht im Object Browser all eure Objekte.
Wenn nun ein Objekt den Wert Null besitzt, habt ihr den Fehler gefunden.
Da ihr jetzt wisst, was der Fehler ist, könnt ihr diesen Fehler meist leicht beheben.
In diesem Falle wird das Objekt initialisiert.
Ich hoffe, dass ich vielen von euch jetzt eine Menge Arbeit erspart habe und ihr nun selber eure Fehler beheben könnt
Ah, und falls ihr Probleme mit dem decompilen des MCPs habt, können folgende Punkte hilfreich sein:
- die Java Version überprüfen (empfohlen wird Java 8)
- das Java JDK installieren (oder aktualisieren)
- die jeweilige Minecraft Version im Launcher einmal heruntergeladen haben
In jeder halbwegs guten IDE ist ein sogenannter Debugger vorhanden.
Ein Debugger ermöglicht das Aufspüren von Fehlern in einem Programm.
Hier seht ihr (anhand von Eclipse) alle wichtigen Elemente eines Debuggers:
Ich gehe diese Begrifflichkeiten jetzt einmal im Schnelldurchlauf druch:
Click here to debug: Startet den Debugger
Step into: Springt zu einer bestimmten Stelle im Code
Step over: Macht einen Schritt vorwärts.
Step out of: Springt aus einem bestimmten Bereich raus.
List of breakpoints: Zeigt alle Breakpoints an.
Object browser: Zeigt alle Objekte und deren Werte an.
Outline view of current code location: Zeigt den Ort des ausgewählten Codes an.
Last breakpoint: Zeigt den letzten durchgangenen Breakpoint an.
Current line of code: Zeigt die Stelle des Codes, die das Programm momentan durchgeht.
Call stack of current Thread: Zeigt den Stack des momentanen Threads an.
Run to next breakpoint: Springt zum nächsten Breakpoint
End program: Beendet das Programm und somit auch den Debugger.
Ein Breakpoint ist ein Punkt den ihr an einer bestimmten Zeile des Programms setzen könnt, bei dem der Debugger anhält und euch alle oben gezeigten Daten anzeigt.
Diesen Punkt könnt ihr links neben dem Code platzieren:
Wenn euer Client also bei Zeile 41. in der Klasse KillAura crasht, dann schaut ihr als erstes, was die Fehlermeldung ist und Googelt diese, um mehr Informationen herauszufinden.
(In erster Linie warum sie auftritt.)
Ich nehme als Beispiel jetzt die allseits bekannte NullPointerException.
Diese Exception tritt dann auf, wenn des Programm probiert auf ein Objekt zu zugreifen, das den Wert Null enthält.
Um das Problem zu lösen, muss die Referenz initialisiert werden.
Wir setzen also in Zeile 41. in der Klasse KillAura einen Breakpoint und debuggen das Programm.
Wenn diese Zeile nun aufgerufen wird, hält das Programm an ("Keine Rückmeldung")
und ihr seht im Object Browser all eure Objekte.
Wenn nun ein Objekt den Wert Null besitzt, habt ihr den Fehler gefunden.
Da ihr jetzt wisst, was der Fehler ist, könnt ihr diesen Fehler meist leicht beheben.
In diesem Falle wird das Objekt initialisiert.
Ich hoffe, dass ich vielen von euch jetzt eine Menge Arbeit erspart habe und ihr nun selber eure Fehler beheben könnt
Ah, und falls ihr Probleme mit dem decompilen des MCPs habt, können folgende Punkte hilfreich sein:
- die Java Version überprüfen (empfohlen wird Java 8)
- das Java JDK installieren (oder aktualisieren)
- die jeweilige Minecraft Version im Launcher einmal heruntergeladen haben
Last edited by a moderator: