# Debug Strategien



## sunny-boy (7. Mai 2011)

Hallo,

mir ist aufgefallen, dass ich beim debuggen öfter sehr "planlos" bzw keine 
wirkliche rangehenweise habe.

Im Internet hab ich nicht wiklich viel gefunden. 
Daher meine Fragen:

- Wie ihr da so ran geht?
- Kennt ihr gute Bücher?

Mfg


----------



## Atze (7. Mai 2011)

also als strategie hilf eigentlich nur verständnis der businesslogik und sprechender code. du solltest eingrenzen können, woher der fehler kommt und da weitersuchen. "planlos" debuggen ist als wenn der arzt bei kopfschmerzen an deinen füßen zu suchen anfängt


----------



## Volvagia (7. Mai 2011)

Kommt auf den Fehler an. Bei einfachen Dingen wie z. B. NPE die ich nicht auf einen Blick erkenne pflaster ich den Bereich mit System.out's zu. Wenn der Codeteil nicht zu oft abgearbeitet wird, kann man danach die Ausgaben schön auswerten. Geht am schnellsten und einfachsten.

Wenn der Code sehr oft abgearbeitet wird, oder der Bug etwas schwerer zu durchschauen ist, setze ich einen Breakpoint und fahr es im Debug-Modus durch. Dauert etwas länge, und ein falscher Klick und man muss eventuell von vorne anfangen, aber man hat volle Kontrolle über den Thread und seine Variablen.

Bei wirklich hartnäckigen Fehlern, z. B. wenn ein einen Swing-Component eine Variable, wie setEnabled falsch gesetzt, was sich auf andere GUI-Komponenten auswirkt (JInternalFrames vor ein paar Tagen z. B.), kopiere ich das ganze Projekt, und minimiere es auf das allernötigste. Wenn der Bug noch da ist, spiele ich mich so lange herum, bis ich die gemachten Änderungen auf das Hauptprojekt übertragen kann. Wenn er nicht mehr da ist, kopiere ich nacheinander alles vom Hauptprojekt hinüber und führe es aus, bis es wieder nicht geht und der fehlerhafte Teil isoliert ist, und dort herumgespielt wird, bis es wieder funktioniert und die neue Erkenntnis aufs Hauptprogramm übertragen werden. So dauert es zwar, aber solche logischen Bugs in 3th-Person-Klassen sind auch imho sehr schwer zu finden und nur durch Erfahrung oder herumprobieren zu beseitigen.

Bei kurzen Codestücken, die nicht machen was du willst, kannst du auch mal versuchen, sie einfach nach Pastie etc. zu kopieren und dort durchzugehen. Durch das andere Design sind mir schon Fehler aufgefallen, die ich mehrmals in Eclipse übersehen habe. Ist zwar nicht besonders erfolgsversprechend, aber einen Versuch wert.
Wenn all das nicht hilft, frage ich einen Bekannten, 4 Augen sehen bekanntlich mehr als 2.  Aber übertreibs besser nicht, sonst flüchtet er vor dir eventuell nach Amerika. 
Wenn all das nichts hilft, frage ich i. d. R. im Forum.
Und wenn hier auch niemand etwas weiß, bin ich so frustriert, dass ich das Programm nie mehr angreife.


----------



## Atze (7. Mai 2011)

Volvagia hat gesagt.:


> Bugs in 3th-Person-Klassen sind auch imho sehr schwer zu finden und nur durch Erfahrung oder herumprobieren zu beseitigen.


die sollten garnicht auftauchen, zumindest sollten fremde apis gewrappt und auf herz und nieren getestet werden. nur weils in der doku der api steht, heißt das nicht, dass immer die gewünschten ergebnisse kommen 



> Und wenn hier auch niemand etwas weiß, bin ich so frustriert, dass ich das Programm nie mehr angreife.


schwierig, wenns kein "hobby projekt" ist


----------

