martin-pabst / Online-IDE-new-compiler

Online-IDE with new compiler
GNU General Public License v3.0
0 stars 0 forks source link

Step Over: Steps nicht konsequent gehighlightet & werden z. T. übersprungen #2

Closed fjf2002 closed 1 week ago

fjf2002 commented 1 week ago

Ein Programm wie

int i = 42;

... benötigt 3 "Step Over"-Schritte:

  1. Programm starten
  2. o. g. Anweisung ausführen
  3. Programm beenden

Soweit nachvollziehbar.

Ein Programm wie

println(new Vector2(0, 1).plus(new Vector2(1, 0)));

Benötigt 4 Schritte. Probleme:

martin-pabst commented 1 week ago

Ich habe das Problem gerade mit IntelliJ Idea nachgestellt. Es führt beim Klick auf "Step over" die komplette Anweisung

println(new Vector2(0, 1).plus(new Vector2(1, 0)));

in einem Schritt aus. Geht man die Anweisung mit "Step Into" durch, so geht es in die Ausführung der Methode plus rein, nicht aber in die Konstruktoren, selbst wenn diese als Quellcode vorliegen.

Gegen einen Stop vor den Konstruktoren spricht, dass die in der Online-IDE ausgeführten Programme umso langsamer werden, je stärker sie in Steps untergliedert sind. Irgendwie ist es aber auch Geschmackssache, wie kleinschrittig innerhalb eines Terms gesteppt wird.

Dass vor Schritt 3 (println) kein Dreieck erschien lag daran, dass das Statement am Zeilenanfang steht. Dadurch wurde vermieden, dass beim schrittweisen Durchlaufen des Programms die Zeilen einzeln immer um ein Zeichen ein- und dann wieder ausrücken. Ich habe das jetzt geändert, bin mir aber nicht sicher, welche Lösung besser ist.