Wie vernünftig debuggen?

  • 3 Antworten
  • Letztes Antwortdatum
F

Flixius

Fortgeschrittenes Mitglied
4
Hallo,

ich programmiere normalerweise in Visual Studio C# und bin daher natürlich auch einen gewissen Komfort gewohnt, den Eclipse nicht zu leisten im Stande zu sein scheint. Um so komplexer meine App wird, um so schwieriger ist es zu programmieren.

Es kommt zum Teil zu absolut merkwürdigen Verhalten, das meinen Code in eine unsichtbare Blackbox verwandelt. Wie debbugt ihr? Es kann doch nicht wahr sein in 2012 solche Verrenkungen zu machen wie ich sie zu vollbringen habe.

Hier ein kleiner, fiktiver Beispielcode, der veranschaulichen soll welche Effekte zum Teil auftreten:

Code:
public class MyActivity extends Activity 
//etc....
try{
String str = GetJsonString();
JSONArray arr = new JSONArray(res);

Log.w("n", ""+arr.length());
for (int i = 0; i < arr.length(); i++) 
  Log.w("n", ""+arr.getJSONObject(i).getString("DisplayName"));

}catch(Exception e){
Log.w("test", e.getMessage());
}
//aufbau UI
Gut. Was macht Eclipse? Ich habe in jeder Zeile einen Breakpoint. Nachdem der String ins JSONArray gepackt wird, wird weder die Arraygröße, oder die Properties angezeigt NOCH springt er in die Exception. Stattdessen wird einfach außerhalb des Abschnits weiter gemacht. LogCat zeigt natürlich nichts an. Was soll das? Das ist mir jetzt nicht zum ersten mal aufgefallen, dass man einfach nicht gescheit debuggen kann und eine halbe Ewigkeit nach Fehlern suchen muss, wenn man direkt in der App entwickelt.

Auch sehr nett ist folgender Bug (pseudocode syntax):
Code:
try{
try{
int.parse("string");
}cach(Exception e){//print exception. wird nicht geworfen}
}catch(Exception e2){
//wird hier geworfen, obwohl die exception darüber nicht über throw 
//geworfen wird... e2 ist null so das man natürlich nicht so genau weiss was 
//da wieder schief gelaufen ist....
}

PS: Der Code aus Beispiel 1 funktioniert außerhalb von Android natürlich fabelhaft und ohne Probleme. Aber sobald ich in irgendwelchen Activities versuche zu entwickeln und zu debuggen wird das immer zu einem riesigen Krampf. Woran liegt das und was sind eure Tricks beim debuggen?
 
Genau dieses Problem hab ich auch...Android Studio ignoriert fleißig alle Breakpoints.

VS-Sachen wie Aufrufliste vermisse ich auch..
 
Hallo,

wahrscheinlich drückt ihr immer auf "Run" und nicht auf "Debbug".
Der Debug-Button ist der Links neben dem Run-Button. Dann ggf. noch von der Java-View auf die Debug-View wechseln und ihr sehr was abgeht ;)


@Flixius: Du hast Log.w aufgerufen... Das ist der "Warn"-Modus. Je nachdem wie Logcat eingstellt ist, werden hier Nachrichten nicht eingestellt.

Ich nutze immer Log.d, da muss man sich keine Gedanken über die Logcat Einstellungen machen... (gerade wenn man 2 Geräte hat, die gleichzeitig überprüft werden sollen wirds meiner Meinung nach unnötig unübersichtlich, wenn man zusätzlich Log-Modi aktiviert).

Ich habs auch erst verrafft Eclipse richtig zu nutzen^^

Beste Grüße
 
Das Debugging unter Android Studio finde ich ganz ok und habe damit keine Probleme. :)

Bin auch Visual Studio 2013 gewohnt, da ist das natürlich alles etwas komfortabler und besser. Aber je mehr man sich damit beschäftigt, desto mehr kommt man damit zurecht und findet sich damit ab. :D

Meckern konnte ich daher bisher nicht.
 
Zurück
Oben Unten