3.4 KiB
3.4 KiB
1. Quellgenaue Halte und Schritte
- 1.1 Eine dateigenaue Breakpoint-Bindung ergänzen und bestehende Modul-/Zeilen-API erhalten; Tests mit zwei Includes derselben physischen Zeile im selben Modul halten nur im gewählten Include.
- 1.2 Editierbare Breakpoint-Marken mit Neubindung an Kompilatrevisionen integrieren; Tests für Einfügen/Löschen und nicht ausführbare Zeilen belegen richtige Verschiebung oder sichtbare Deaktivierung.
- 1.3 Continue-/Single-Step-Verhalten und F9/Clear All im IDE-Dispatcher anbinden; Tests belegen Ausführung einer angehaltenen Anweisung genau einmal und erneuten Halt bei späterem Schleifendurchlauf.
- 1.4 Step Over mit Frameidentität sowie Run to Cursor mit temporärem Halt implementieren; Tests prüfen Rekursion, GOSUB, Eventhandler, vorrangige Breakpoints und Aufräumen des Cursorziels.
- 1.5 Calls-Fenster und Next Statement mit getrenntem Inspektions-/Ausführungsrahmen anbinden; ein Rekursionstest navigiert in ältere Frames, ohne den aktiven PC zu verändern.
2. Ausdrücke und Direktfenster
- 2.1 Bestehenden Frontend-/Codegen-Pfad für temporäre Debug-Ausdrücke mit Slotbindung im gewählten Frame zugänglich machen; Tests vergleichen Zahlenkonvertierung, Modulqualifizierung, Arrays und UDT-Felder mit normalem BASIC-Code.
- 2.2 Add/Instant/Delete/Delete All Watch und das read-only Debug Window integrieren; Tests zeigen Fehler pro Eintrag und nachweislich unveränderten Zustand nach wiederholter Beobachtung.
- 2.3 Reinheitsprüfung für automatische Ausdrücke und bedingte Watchpoints implementieren; Tests lehnen zustandsverändernde Aufrufe ab und halten nach einer falsch→wahr-Änderung an der nächsten Grenze.
- 2.4 Immediate Window mit temporärem Debug-Eintritt für PRINT und Zuweisungen implementieren; Tests belegen sichtbare Werteänderung und erhaltenen ursprünglichen Fortsetzungspunkt.
- 2.5 Prozeduraufrufe einschließlich BYREF, ERROR und Runtimefehler im Direktfenster integrieren; Tests prüfen Handler/RESUME, Unterbrechen, wartende Aufrufe sowie END/RUN-Übergänge ohne verlorenen oder doppelten Frame.
3. Historie, Fehler und Ausführungsziel
- 3.1 Trace, begrenzte History und Shift+F8/Shift+F10 mit eindeutiger historischer Markierung implementieren; Tests belegen Ringgrenze, Navigation und unveränderte aktuelle Variablen/Dateieffekte.
- 3.2 Break on Errors zwischen Handlerwahl und erster Handleranweisung einführen; Differentialtests mit deaktivierter Option belegen identische ERR/ERL-, Unwinding- und RESUME-Folge nach Continue.
- 3.3 Zulässige Ziele für Set Next Statement aus Statement-/Kontrollkontexten ableiten und vor Mutation prüfen; Tests erlauben gleichrangige Ziele und lehnen fremde Frames, Schleifen-/GOSUB-/Fehlerkontexte ohne Teiländerung ab.
- 3.4 Debuggerzustand an Neustart und Quellrevisionen binden; Tests belegen neu gebundene Breakpoints, erhaltene Watchdefinitionen und verworfene Frames/History/Werte.
4. Abnahme und Bedienung
- 4.1 Die vollständigen Debugger-Menüs und F7/F8/F9/F10/Shift+F9 über App-Ereignisse prüfen; dieselben Szenarien müssen auch mit Include- und Formularereigniscode korrekt anhalten.
- 4.2 Debuggerverträge und die expliziten Grenzen für Watches, History und Set Next Statement dokumentieren; verification.md weist alle Szenarien sowie bestandene VM-/Fehlerhandler-/CLI-Regressionen und Format-/Clippy-Prüfung nach.