# Wie funktioniert das debuggen??



## Newcomer2 (18. Feb 2014)

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


----------



## Machareder (18. Feb 2014)

2 min google:
Java Debugging with Eclipse - Tutorial
JAVA: 2.3.4 Der Java Debugger (jdb)


----------



## VfL_Freak (18. Feb 2014)

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]


----------



## Machareder (18. Feb 2014)

jo 2 min waren auch noch das kopieren + schreiben + veröffentlichen dabei :lol:
und das war noch gut aufgerundet


----------



## VfL_Freak (18. Feb 2014)

Moin,

[OT]


Machareder hat gesagt.:


> jo 2 min waren auch noch das kopieren + schreiben + veröffentlichen dabei :lol:


[/OT]
dann solltest Du das aber noch üben :idea: 

Gruß
Klaus


----------



## Newcomer2 (18. Feb 2014)

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


----------



## Machareder (18. Feb 2014)

du willst mir jetzt sagen, dass du innerhalb einer guten(aber sehr guten) halben stunde alle Links nicht nur angeschaut sondern auch abgearbeitet hast?!
Java Debugging with Eclipse - Tutorial
Du willst mir ernsthaft sagen, dass du dieses Tutorial Punkt für Punkt abgearbeitet hast?


----------



## VfL_Freak (18. Feb 2014)

Moin,



Newcomer2 hat gesagt.:


> 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?




Newcomer2 hat gesagt.:


> 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


----------



## Newcomer2 (18. Feb 2014)

@ Machareder: Spätestens ab Punkt 3.2 hängts schon, da bei mir im Package Explorer unter 
	
	
	
	





```
Debug As
```
  nur 
	
	
	
	





```
Debug Configurations...
```
 steht, nix von wegen 
	
	
	
	





```
Java Application
```
 oder 
	
	
	
	





```
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.


----------



## VfL_Freak (18. Feb 2014)

Moin,



Newcomer2 hat gesagt.:


> 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


----------



## Machareder (18. Feb 2014)

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



ich hoffe du hast veruscht die main klasse zu debuggen...


----------



## Newcomer2 (18. Feb 2014)

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.


----------



## CerO (18. Feb 2014)

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


----------



## NoXiD (18. Feb 2014)

Newcomer2 hat gesagt.:


> Und nein, ich hab noch nicht gegoogelt. Das Forum war mein erster Weg auf der Suche nach Hilfe.



Aha, also registrierst du dich eher bei einem Forum als 5min zu googlen - interessantes Verhalten. 
Debugging a Java Program with Eclipse - Developer.com - Developer.com

oder einfach mal das hier


----------



## Newcomer2 (18. Feb 2014)

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.


----------



## Machareder (18. Feb 2014)

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?


----------



## CerO (18. Feb 2014)

Newcomer2 hat gesagt.:


> 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


----------



## NoXiD (18. Feb 2014)

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.


----------



## Newcomer2 (18. Feb 2014)

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


----------



## VfL_Freak (18. Feb 2014)

Moin,



Newcomer2 hat gesagt.:


> 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


----------



## Newcomer2 (18. Feb 2014)

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 ^^


----------

