ARexx verfügt über einen Ablaufverfolgungsmodus, der Host-Kommandos unterdrückt, die sog. Kommandosperre. In diesem Modus werden Kommandoklauseln in der üblichen Weise ausgewertet, das Kommando wird jedoch nicht wirklich an den externen Host gesendet. Der Rückgabewert (RC) wird auf Null gesetzt. Auf diese Weise können Programme getestet werden, die Kommandos mit einer potentiell zerstörenden Wirkung ausgeben, z.B. das Löschen von Dateien oder das Formatieren von Festplatten oder Disketten. Die Kommandosperre gilt jedoch nicht für Kommandoklauseln, die im Dialogbetrieb (interaktiv) eingegeben werden. Solche Kommandos werden stets ausgeführt, der Wert der Sondervariablen RC bleibt allerdings unverändert.
Die Kommandosperre kann in Verbindung mit jeder Ablaufverfolgungsoption eingesetzt werden. Sie wird durch das Zeichen "!" gesteuert, das allein Stehen oder einer der alphabetischen Optionen in einem TRACE-Befehl vorangestellt werden kann. Mit jedem vorkommenden "!" wird vom zur Zeit aktiven Sperrmodus in den anderen Modus umgeschaltet. Die Kommandosperre wird aufgehoben, wenn die Ablaufverfolgung auf OFF gesetzt wird.
Die interaktive Ablaufverfolgung ist eine Fehlersuchhilfe, die es dem Benutzer ermöglicht, während der Ausführung eines Programms Quellanweisungen einzugeben. Über solche Anweisungen können Variablenwerte überprüft oder verändert, Kommandos ausgegeben oder auf andere Weise mit dem Programm in einen Dialog getreten werden. Jede gültige Sprachanweisung kann interaktiv eingegeben werden. Es gelten die gleichen Regeln und Einschränkungen wie für den Befehl INTERPRET. Insbesondere ist darauf zu achten, daß zusammengesetzte Anweisungen, wie z.B. DO und SELECT, innerhalb der eingegebenen Zeile vollständig sind.
Die interaktive Ablaufverfolgung kann mit jeder Ablaufverfolgungsoption verwendet werden. Im Dialogmodus legt der Interpreter nach jeder in die Ablaufverfolgungsliste geschriebenen Klausel eine Pause ein und fordert mit dem Code "+++" zu einer Benutzereingabe auf. Bei jeder dieser Pausen hat der Benutzer drei verschiedene Antworten zur Auswahl:
Da der Interpreter nach erfolgter Ablaufverfolgung einer Klausel pausiert, werden die Pausenpunkte von der zur Zeit aktivierten Ablaufverfolgungsoption bestimmt. Die Ausführung mancher Befehle kann allerdings nicht ohne Risiko wiederholt werden, so daß der Interpreter nach Ausführung solcher Befehle nicht pausiert. Diese Befehle sind CALL, DO, ELSE, IF, THEN und OTHERWISE. Der Interpreter pausiert gleichfalls nicht nach Klauseln, die einen Ausführungsfehler generiert haben.
Die interaktive Ablaufverfolgung wird durch das Zeichen "?" gesteuert, das allein stehen oder mit einer der alphabetischen Optionen in einem TRACE-Befehl angegeben werden kann. Einer Option können beliebig viele "?" vorangestellt werden. Mit jedem vorkommenden "?" wird vom zur Zeit aktiven Modus in den anderen Modus umgeschaltet. Wäre z.B. die aktuelle Ablaufverfolgungsoption NORMAL, so würde mit "TRACE ?R" die Option RESULTS gesetzt und der interaktive Ablaufverfolgungsmodus aktiviert. Ein späteres "TRACE ?" würde die interaktive Ablaufverfolgung wieder ausschalten.
Der ARexx-Interpreter stellt während der Fehlersuche eine spezielle Fehlerbehandlung zur Verfügung. Während der interaktiven Fehlersuche gefundene Fehler werden gemeldet, führen aber nicht zur Beendigung des Programmlaufs. Diese spezielle Verarbeitung gilt allerdings nur für im Dialogbetrieb eingegebene Anweisungen.
ARexx inaktiviert auch die internen Interrupt-Kennzeichen während der interaktiven Fehlersuche. Damit wird eine unbeabsichtigte Steuerungsübertragung verhindert, die durch einen Fehler oder das Antreffen einer nicht initialisierten Variable ausgelöst werden könnte. Wird jedoch der Befehl "SIGNAL Sprungmarke" eingegeben, findet der Steuerungstransfer statt, und eventuell verbleibende interaktive Eingabedaten bleiben unberücksichtigt. Der Befehl SIGNAL kann auch weiterhin dazu verwendet werden, die Interrupt-Kennzeichen zu ändern. Die neuen Einstellungen treten in Kraft, wenn der Interpreter in den normalen Verarbeitungsmodus zurückkehrt.
Jeder ARexx-Task initialisiert seinen Fehlergrenzwert entsprechend dem Grenzwert des Klienten (normalerweise 10). Damit wird das Ausdrucken unnötiger Kommandofehler unterbunden. Der Fehlergrenzwert kann mit OPTIONS FAILAT verändert werden. Kommandofehler (RC > 0) und fehlgeschlagene Kommandos (RC >= FAILAT) können mit SIGNAL ON ERROR und SIGNAL ON FAILURE separat verfolgt werden.
ARexx verfügt über ein externes Ablaufverfolgungskennzeichen, mit dem Programme in den interaktiven Ablaufverfolgungsmodus gezwungen werden können. Wenn dieses Kennzeichen gesetzt wird (mit dem Kommandohilfsprogramm TS (Trace Set)), geht jedes Programm in den interaktiven Ablaufverfolgungsmodus über (sofern es sich nicht bereits in diesem Modus befindet). Die interne Ablaufverfolgungsoption wird auf RESULTS gesetzt, es sei denn, sie ist gegenwärtig auf INTERMEDIATES oder SCAN gesetzt. In diesen Fällen bleibt es unverändert Programme, die aufgerufen werden, während das externe Ablaufverfolgungskennzeichen gesetzt ist, beginnen die Ausführung im interaktiven Ablaufverfolgungsmodus.
Das externe Ablaufverfolgungskennzeichen bietet eine Möglichkeit, die Kontrolle über Programme wieder zu gewinnen, die sich in Schleifen befinden oder nicht reagieren. Sobald ein Programm in den interaktiven Ablaufverfolgungsmodus übergeht, kann der Benutzer die Programmanweisungen Schritt für Schritt durchgehen und das Problem diagnostizieren. Die externe Ablaufverfolgung ist ein globales Kennzeichen, d.h. sie wirkt sich auf alle gegenwärtig aktiven Prozesse aus. Das Ablaufverfolgungskennzeichen bleibt solange gesetzt, bis es mit dem Kommandohilfsprogramm TE (Trace End) gelöscht wird. Jedes Programm verwaltet eine interne Kopie des letzten Status des Ablaufverfolgungskennzeichens und setzt seine eigene Ablaufverfolgungsoption auf OFF, wenn es feststellt, daß das Ablaufverfolgungskennzeichen gelöscht wurde. Programme im Ablaufverfolgungsmodus BACKGROUND reagieren nicht auf das externe Ablaufverfolgungskennzeichen.