Die Ablaufverfolgungsoption bestimmt, welche Klauseln des Quelltexts verfolgt werden sollen. Sie besitzt zwei Modifizierungskennzeichen zur Steuerung der Kommandosperre und der Ablaufverfolgung im Dialogbetrieb (interaktiv). Ablaufverfolgungsoptionen können auf einen einzigen Buchstaben abgekürzt angegeben werden.
Der Ablaufverfolgungsmodus kann über den Befehl TRACE oder die integrierte Funktion TRACE() gesetzt werden. Die Ablaufverfolgung kann innerhalb eines Programms selektiv inaktiviert werden, um bereits getestete Komponenten von Programmen zu überspringen.
Jede auf der Konsole angezeigte Zeile der Ablaufverfolgung ist eingerückt, um die tatsächliche Steuerungs- bzw. Verschachtelungsebene der jeweiligen Klausel zu verdeutlichen. Ferner ist jede Zeile durch einen speziellen, dreistelligen Code gekennzeichnet (siehe dazu die folgende Tabelle 6-1). Dem Quelltext jeder Klausel wird die Zeilennummer innerhalb des Programms vorangestellt. Resultate und Zwischenresultate von Ausdrücken stehen in doppelten Anführungszeichen, so daß auch voran- und nachgestellte Leerzeichen sichtbar werden.
Tabelle 6-1. Spezielle dreistellige Codes
Die Ausgabedaten der Ablaufverfolgung eines Programms werden stets in einen von zwei logischen Datenströmen eingespeist. Der Interpreter sucht zunächst nach einem Datenstrom mit dem Namen STDERR und leitet die Ausgabe dorthin, falls dieser Datenstrom existiert. Andernfalls geht die Ausgabe an den standardmäßigen Ausgabedatenstrom STDOUT und wird mit der normalen Konsolenausgabe des Programms vermischt. Die Datenströme STDERR und STDOUT können vom Programm aus geöffnet und geschlossen werden, so daß der Programmierer das Ziel der Ablaufverfolgungsausgabe stets unter Kontrolle hat.
In manchen Fällen ist der Ausgabedatenstrom eines Programms nicht vorab definiert. Wird z.B. ein Programm von einer Host-Anwendung aufgerufen, die keine Ein- und Ausgabedatenströme bereitstellt, verfügt das Programm über keine Ausgabekonsole. Um auch für solche Programme eine Möglichkeit der Ablaufverfolgung zu schaffen, kann der residente Prozeß eine spezielle, globale Ablaufverfolgungskonsole öffnen, die von jedem aktiven Programm geöffnet werden kann. Wird diese Konsole geöffnet, öffnet der Interpreter automatisch einen Datenstrom mit dem Namen STDERR für jedes ARexx-Programm, in dem STDERR zur Zeit nicht definiert ist. Das Programm leitet dann seine Ablaufverfolgungsausgabe an diesen neuen Datenstrom um.
Mit dem Kommandohilfsprogramm TCO (TraCe Open) kann eine Konsole für globale Ablaufverfolgung geöffnet werden. ARexx-Programme leiten die Ausgabedaten ihrer Ablaufverfolgung automatisch in das neue Fenster um, das als standardmäßige AmigaDOS-Konsole geöffnet wird. Der Benutzer kann Position und Größe dieses Fensters beliebig verändern.
Die Ablaufverfolgungskonsole dient auch als Eingabedatenstrom für Programme während der interaktiven Ablaufverfolgung. Wenn ein Programm auf Eingabedaten zur Ablaufverfolgung wartet, müssen diese Daten über die Ablaufverfolgungskonsole (in deren Fenster) eingegeben werden. Beliebig viele laufende Programme können sich die Ablaufverfolgungskonsole teilen. Es empfiehlt sich allerdings, die Ablaufverfolgung immer nur für jeweils ein Programm zu aktivieren.
Die globale Konsole kann mit dem Kommando TCC (TraCe Close) geschlossen werden. Das Schließen wird allerdings erst ausgeführt, wenn alle Leseanforderungen an die Konsole bearbeitet wurden. Die Konsole wird also erst geschlossen, wenn alle aktiven Programme melden, daß sie die Konsole nicht mehr benutzen.