Na wenn ich z.B. einzelschrittweise eine bestimmte Prozedur
abarbeite, komme ich ja irgendwann am letzten Schritt an, also
beim „end;“. Danach müsste „der blaue Balken“ dann doch wohl
auf den Befehl springen, der als nächstes nach dem Aufruf der
Prozedur kommt, oder?
Dieses Verhalten ist durchaus nicht ungewöhnlich; es kann sich zeigen, wenn z. B. folgender Fall vorliegt:
s := summe(produkt(k, j), differenz(a, b));
„summe“, „produkt“ und „differenz“ sind alles Funktionen.
Wenn Du mit im Einzelschrittmodus an diese Zeile kommst, springt der Debugger nicht in summe sondern in produkt, weil produkt „zuerst dran ist“! Hast Du die letzte Zeile in produkt erreicht, führt Dich der nächste F8-Druck in differenz rein (!), weil das als nächstes dran ist! Erst nachdem Du durch differenz durch bist, gerätst Du mit dem nächsten F8-Druck endlich in summe.
Du kannst das ja mal ausprobieren, indem Du tatsächlich solche Funktionen sowie die obige Beispielanweisung testhalber implementierst.
Liegt bei Dir vielleicht ein derartiges Konstrukt vor?
wenn in den 15000 Codezeilen nicht irgendwelche Fehler stecken…
*lach* Ein absolut fehlerfreies 15000-LOC-Programm zu schreiben halte ich für unmöglich (sehr einfache Programme natürlich immer ausgenommen).
Martin