Debugger
Der Debugger dient zur Verfolgung der Programmausführung im Emulator.
Dazu können Sie Haltepunkte setzen,
die Programmausführung anhalten,
die Registerinhalte sehen und ggf. auch ändern sowie
einzelne Prozessorbefehle oder Unterprogramme ausführen
bzw. die Programmausführung fortsetzen.
Der Bereich für die Anzeige der Register teilt sich
oben in die Steuerregister und unten in die allgemeinen Register,
die auch die beiden Register f&uumL;r die Ports 2 und 3 enthalten.
Die Register 0 und 1 werden nicht angezeigt,
da diese beiden Ports beim JU+TE-Computer für den Daten- und
Adressbus verwendet werden und somit als Ein-/Ausgabetore
nicht zur Verfügung stehen.
Haben Sie in den Einstellungen die Option
Register %80 bis %EF emulieren
aktiviert, erscheint im oberen Bereich des Debugger-Fensters
eine Möglichkeit zur Umschaltung der Anzeige
der Register bis %80 und ab %80.
Diese ist aktiv, wenn die Programmausführung angehalten wurde
(siehe weiter unten).
Die Umschaltmöglichkeit schaltet konkret zwischen den
Registerbereichen %10 bis %7F und %80 bis %EF um.
Die Register 2 bis %0F und die Steuerregister sind immer sichtbar.
Die Programmausführung wird mit dem Menüpunkt
Programmausführung anhalten im Menü Debuggen
oder bei Erreichen eines aktiven Haltepunktes angehalten.
Beim Anhalten werden die aktuellen Werte der Prozessorregister angezeigt
und die Registergruppe, auf die der Register Pointer RP
(Register %FD) zeigt, farblich hervorgehoben.
Die Registerinhalte können Sie nun ändern.
Geänderte Werte werden ebenfalls farblich hervorgehoben.
Möchten Sie einen geänderten Wert wieder zurücksetzen,
ist das über ein Kontextmenü
(rechte Maustraste über dem Register) möglich.
Um Missverständnisse zu vermeiden, können die Register
2, 3, SIO, T1, PRE1, T0 und PRE0 nicht geändert werden.
Diese Register haben nämlich beim Lesen und Schreiben eine
unterschiedliche Bedeutung.
Die Funktionen zum Verwalten der Haltepunkte finden Sie im Menü
Debuggen und im Kontextmenü über den Bereich
Haltepunkte auf... am rechten Fensterrand.
Es gibt drei Arten von Haltepunkten:
- Haltepunkte auf eine Programmadresse (PC-Adresse)
- Haltepunkte auf einen Speicherzugriff
- Haltepunkte auf einen Registerzugriff
Bei den Haltepunkten müssen die Adressen bzw. Registernummern
mit ihrem hexadezimalen Wert angegeben werden.
Des Weiteren können sie auch inaktiv gesetzt werden,
d.h., bei diesen wird dann nicht angehalten.
Aktive Haltepunkte werden mit einem kleinen Stoppsymbol markiert.
Mit den weiteren Funktionen im Menü Debuggen
können Sie einzelne Befehle oder Befehlsgruppe ausführen
oder die Programmausführung generell fortsetzen.
An aktiven Haltepunkten wird jedoch angehalten,
solange der Debugger geöffnet ist.
Die Taktzyklen werden mitgezählt und unten links angezeigt.
Der Taktzyklenzähler kann mit einem Click auf
Zurücksetzen beliebig oft wieder auf Null gesetzt werden.
Damit kann lässt sich z.B. die Laufzeit von
Programmcodeabschnitten ermitteln.
Dazu setzt man je einen Haltepunkt auf den Anfang und das Ende
des betreffenden Programmcodeabschnitts,
setzt beim Erreichen des ersten Haltepunkt den Taktzyklenzähler
zurück, startet die Programmausführung wieder und
liest beim zweiten Haltepunkt die Anzahl der Taktzyklen ab.