Wie funktioniert das debuggen??

Newcomer2

Aktives Mitglied
Hallo liebe Community,

hab hier ja schon öfters gelesen, dass wenn etwas im Programm nicht oder nicht richtig funktioniert, dann solle man das im Debug-Modus abspielen.

Ich versteh das mit dem Debuggen nicht. Kann mir vielleicht wer sagen, wozu das jetzt gut ist und was man damit machen kann?
Verstehe nur Bahnhof und seh nicht durch. Was wollen mir die einzelnen Zeilen da sagen?

Im Anhang sind einmal die Zeilen im Debug-Mode dargestellt.
Hoffe mir kann jemand mal allgemeines zum Debuggen sagen und auch, was mir diese Zeilen sagen sollen ^^

MfG
 

Anhänge

  • Unbenannt.jpg
    Unbenannt.jpg
    47,4 KB · Aufrufe: 80
Moin,

hmm, so mit zwei Sätzen wird Dir das hier niemand beantworten können, dazu ist das Thema wohl zu komplex ...

Ganz grundlegend gesagt benutzt Du den Debugger zu Fehlersuche. Du kannst mit ihm schrittweise durch Dein Programm laufen und dabei mittels sog. Breakpunkten gezielt an bestimmten Stellen anhalten, um bspw. Werte zu überprüfen!

Hier mal ein paar Links, die Du Dir zu Gemüte führen solltest:
Java Debugging with Eclipse - Tutorial
jdb - The Java Debugger
Java debugging tutorial - 10 tips on debugging in java with example

Gruß
Klaus

[EDIT]nur 1 Minute Google :lol:[/EDIT]
 
Zuletzt bearbeitet:
Danke, aber hilft mir nicht wirklich 🙁 Versteh auch da nur BAHNHOF.

Gibts denn keine wirklich einfache Beschreibung dafür?

Und allgemein: zu den Zeilen, die mir der Debugger anzeigt, habt ihr auch noch nix gesagt 🙁
 
Moin,

Gibts denn keine wirklich einfache Beschreibung dafür?
Viel besser als dies hier (Java Debugging with Eclipse - Tutorial) wird es kaum gehen ...
BTW: hast Du denn selbst schon mal gegoogled?


zu den Zeilen, die mir der Debugger anzeigt, habt ihr auch noch nix gesagt 🙁
Das wird daran liegen, das diese zeilen auch nicht viel aussagen. Sie zeigen nur die zu einem bestimmten Augenblick laufenden Threads an ... zudem wissen wir nicht wo und wie Du den Ausschnitt erzeugt hast!

Hast Du denn ein konkretes Problem, welches Du debuggen willst?

Arbeite Dich mal Du das Tutorial und über den Umgang ggf. mit einem einfachen Programm !

[EDIT]
Hier mal die Google-Suche nach Links zu erklärenden Videos:
https://www.google.de/#q=java+debugging+eclipse+video
[/EDIT]

Gruß
Klaus
 
Zuletzt bearbeitet:
@ Machareder: Spätestens ab Punkt 3.2 hängts schon, da bei mir im Package Explorer unter
Code:
Debug As
nur
Code:
Debug Configurations...
steht, nix von wegen
Code:
Java Application
oder
Code:
Debug on Server

@VfL_Freak: Was kann ich denn machen, damit mir das mehr Informationen ausgibt?
Diesen Ausschnitt hab ich mit der Druck-Taste aus dem Debug-Mode heraus erzeugt. Ich wollte mal versuchen, das Programm zu debuggen, aber das da seh ich kein Land 🙁
Hab vorher noch nie gedebuggt. Immer so probiert, bis es lief, wie ichs wollte. Und nein, ich hab noch nicht gegoogelt. Das Forum war mein erster Weg auf der Suche nach Hilfe.

Das Problem wollt ich nochmal anders angehen ohne den Debug-Mode nutzen zu müssen, da ich so wahrscheinlich schneller ans Ziel komm.

Und für die Videos hab ich grad keine Zeit, hatte hier eher auf schnelle präzise Hilfe gehofft.
 
Moin,

Und für die Videos hab ich grad keine Zeit, hatte hier eher auf schnelle präzise Hilfe gehofft
Wie sollen wir hier "auf die Schnelle helfen", wenn Du nicht sagst, was Dein Problem ist :noe:

Debugen ist (zumindest für Anfänger) ein komplexes Thema, das sich nun mal nicht in zwei Sätzen allumfassend erklären lässt!
Entweder bist Du bereit, Dich damit zu beschäftigen und intensiver einzuarbeiten ... oder eben nicht!!

Gruß
Klaus
 
Ich würde es ja gern debuggen, wenn ich weiß, wie -_-

Nun, ich wollte das Spiel Minesweeper mal nachmachen und häng jetzt bei dem Problem, dass ich gerne beim Klick auf ein Feld, um das herum keine Mine ist, das Programm automatisch zum nächsten Feld geht und dort prüft, ob eine Mine vorhanden ist. Wenn ja, soll er von der Ausgangsposition nach links weiterlaufen, dannach von der Ausgangsposition eine Reihe höher und das ganze wiederholen, usw. und das ganze in einer Rekursiven Methode (d.h. doch dass sie sich selbst aufruft mit veränderten Eingangsvariablen).

Er fängt dann an zu hängen, wenn er im Prinzip zurück springen soll um fortzufahren.
 
Hallo

Du Kannst irgendwo im Programm einen Breakpoint setzten, indem du links an die Seite der Zeile einmal hinklickst. An dieser Stelle wird dein Programm stehen bleiben, sobald es diese Zeile erreicht. Nachdem du den Breakpoint gesetzt hast führst du den Debugmode aus so wie du es vorhin gemacht hast. Klickst dich anschließend in deinem Programm an die Stelle, an der der Breakpoint gesetzt ist. Dein Programm bleibt stehen und nun sollte deine Entwicklungsumgebung die Zeile irgendwie farblich hinterlegen. Nun kannst du (meist) per Mouseover über Variablen sehen, welchen Inhalt diese aktuell haben und mit den bildlich selbsterklärenden Buttons oben in der Toolleiste dein Programm Zeile für Zeile nun durchlaufen.

Das wär mal so ne kurze schnelle Erklärung.


Mit freundlichen Grüßen
CerO
 
Es geht nicht darum, dass ich nicht google!
Ich hab schon gegooglet, aber nur englisches gefunden. Da dacht ich, ich frag hier mal, ob ich auch was deutsches an Hilfe bekomme.

Sowirklich hilft mir das Debuggen auch nicht -_- Muss ja trotzdem Fehler selbst beheben, wenn ich denn überhaupt erstmal weiß, wie ich den beheben kann.
 
1. wenn du Java(oder allgemein programmieren willst) muss dir klar sein, dass du englische seiten/bücher lesen musst!
2. ganau dafür ist doch debugen da? Um die Fehler zu finden oder nicht?
 
Sowirklich hilft mir das Debuggen auch nicht -_- Muss ja trotzdem Fehler selbst beheben, wenn ich denn überhaupt erstmal weiß, wie ich den beheben kann.

Der Debugger behebt auch nicht deine Fehler. Er hilft nur dabei sie zu finden. Natürlich braucht man den jetzt nicht unbedingt. Es wird auch nach ner langen Zeit mit Try & Fail funktionieren seine Fehler zu finden und zu beheben, aber wenn man ihn beherrscht verkürzt es einem die Suchzeit extrem.
Man kanns dir halt nur ans Herz legen, ob du ihn benutzen wirst ist eine andere Sache.

Mit freundlichen Grüßen
CerO
 
da muss ich meinen Vorredner recht geben.

Ohne Englisch wirst du wohl kaum (gute) Hilfe finden.

Debuggen ist dazu da aufzuzeigen wo dein Fehler liegt, beheben musst du den sowieso selbst.
 
Wo mein Fehler in etwa liegt weiß ich ja, ich erhalte ja Exceptions (is ne StackOverFlow-Exception) :lol:
Weiß nur nicht so recht wie ich ihn beheben kann ;(
Ich dachte halt, dass mir der Debugger da helfen kann.

Na egal, Thema is dann damit erstmal erledigt!

Danke für alle Antworten 🙂
 
Moin,

Wo mein Fehler in etwa liegt weiß ich ja, ich erhalte ja Exceptions (is ne StackOverFlow-Exception) :lol:
Weiß nur nicht so recht wie ich ihn beheben kann ;(
Ich dachte halt, dass mir der Debugger da helfen kann.
Hast Du vielleicht irgendwo eine Endlosschleife, in der immer wieder neuer Speicher allokiert wird (meist durch Anlage neuer Objekte)? Eine SOF-Exception deutet eigentlich daraufhin ....

Aber in einem solchen Fall ist ein Java Profiler wahrscheinlich besser geeignet, um das Speicherleck zu finden!
http://www.informatik.tu-cottbus.de...4/vortraege/profiling-java/Java-Profiling.pdf
Java Profiler - JProfiler

Gruß
Klaus
 
Ja, es war in gewisserweise eine Endlosschleife drin.
Hab das Problem dann z.T. in den griff bekommen.

Hab euch mal das bisherige "Spielchen" mit angehangen.
Es ist natürlich noch nicht fertig, aber die weiteren Aspekte sollten recht einfach gehen.
Dazu zählen eine Uhr und eine Anzeige der noch verbliebenen Minen

Die kleinen Kästchen sind alles einzelne Canvas-Elemente, daher braucht es wohl auch immer etwas, bis sich das Fenster aufgebaut hat ^^
 

Anhänge

Neue Themen


Zurück
Oben