| Neue Features von 4DOS 6.0 |
| Batch Debugger |
| Eigenschaften |
Einer der größten Vorteile von 4DOS (4NT, 4OS2, Take Command) ist der gegenüber
den Kommando-Interpretern COMMAND.COM oder CDM.EXE der Betriebssysteme von Microsoft und IBM
enorm gesteigerte Funktionsumfang. Das ermöglicht Batch-Programme, die einer
"richtigen" Programmiersprache fast gleichkommen.
Mit steigender Komplexität der Programme wurde die Forderung nach Debug-Möglichkeiten
lauter. Mit den neuen Version hat JP-Software diesen Wunsch nun erfüllt.
Mit dem Debugger können Sie durch ein Batch-Programm Zeile für Zeile "steppen".
Dabei wird das Programm während des Debuggens in einem Fenster angezeigt. Sie können
die aktuelle Programmzeile ausführen lassen oder überspringen, das Programm abbrechen
oder ohne Debugger bis zum Ende ausführen lassen. In einem Extra-Fenster können Sie
sich die aktuellen Werte von Variablen und Aliasen anzeigen lassen.
| Anwendung |
Um ein Batch-Programm zu debuggen, fügen Sie am Anfang der Datei oder des Abschnittes,
den Sie untersuchen möchten, das Kommando SETDOS /Y1 ein. An das Ende des Programmes
oder des Abschnittes setzen Sie SETDOS /Y0. Sie können den Debugger auch von der
Kommandozeile starten, weil jedoch der Debugger am Prompt automatisch abgeschaltet wird,
müssen Sie die Kommandos SETDOS und den Batch-Dateinamen in einer Zeile eingeben,
zum Beispiel:
Das dachförmige Zeichen (^ = Caret) in dem Beispiel dient in 4DOS als Trennzeichen zwischen zwei Kommandos. In 4NT und Take Command /32 ist das Trennzeichen ein Ampersand (&).C:\4DOS > SETDOS /Y1 ^ STATUS95.BAT
Nach diesem Kommando startet der Batch-Debugger und zeigt das Programm STATUS95.BAT in einem Fenster. Das Debug-Fenster sieht etwa so aus:
|
Am oberen Rand des Fensters ist der Titel des debugten Programmes zu sehen, dahinter in eckigen
Klammern die aktuelle Zeile. Diese Zeile wird im darunter angezeigten Listing hervorgehoben.
Am unteren Rand des Fensters sehen Sie zur Erinnerung die Kommandos, die möglich sind,
während der Debugger läuft:
| T(race), RETURN, oder F8 | Führt die aktuelle Zeile aus. Wenn hier mit GOSUB oder CALL ein anderer Programmteil oder ein anderes Batch-Programm aufgerufen wird, werden auch diese (Unter-)Programme im Single-Step-Modus im Debugger ausgeführt. |
| S(tep) oder F10 | Führt die aktuelle Zeile aus. Unterprogramme oder andere aufgerufene Batch-Programme werden jedoch nicht im Single-Step-Modus ausgeführt. |
| J(ump) | Überspringt das aktuelle Kommando, ohne es auszuführen, und setzt die Programmausführung mit dem nächsten Kommando fort. |
| X(pand) | Zeigt das nächste auszuführende Kommando an. Alle Variablen und Aliase werden ausgewertet und angezeigt. |
| L(ist) | Fragt nach einem Dateinamen und zeigt dann diese Datei mit dem Kommando LIST an. |
| V(ariables) | Öffnet ein Fenster, in dem die aktuellen Werte der Umgebungsvariablen in alphabetischer Reihenfolge angezeigt werden. |
| A(liases) | Öffnet ein Fenster, in dem die aktuellen Werte aller Aliase in alphabetischer Reihenfolge angezeigt werden. |
| O(ff) oder ESC | Beendet den Debugger und setzt die Ausführung des Batch-Programmes bis zum Ende fort. |
| Q(uit) | Beendet sofort den Debugger und das das Batch-Programm ohne den Rest des Batch-Programmes auszuführen. |
| Tips |
Aber auch ohne den Debugger können Sie mit Hilfe einiger simpler Tricks Fehler in
Batch-Programmen aufspüren. Am einfachsten ist es, am Anfang des zu untersuchenden
Programmes den Befehl ECHO ON einzufügen. Alternativ können Sie mit dem Befehl
SETDOS /V2 ein Echo von Batch-Dateien erzwingen, auch wenn das Echo in den Dateien mit
ECHO OFF abgeschaltet wurde. Hierduch wird jede Zeile vor der Ausführung auf dem
Bildschirm ausgegeben. Das mag etwas chaotisch aussehen, gibt Ihnen aber einen Eindruck
von dem, was in dem Programm passiert.
Ein weiterer wirkungsvoller Trick ist es, eine PAUSE-Anweisung an den zu untersuchenden
Stellen einzufügen. Um eine "automatische" Pause zu erzeugen, können
Sie das Kommando ON ERRORMSG verwenden. Fügen Sie dazu an den Beginn der zu
untersuchenden Datei den folgenden Befehl ein:
Hierdurch wird das Batch-Programm bei einem Fehler zuerst die Fehlermeldung ausgeben und dann anhalten. Wenn Sie im obigen Beispiel die Anweisung PAUSE durch QUIT ersetzen, wird das Programm bei Auftreten eines Fehlers beendet. Sie können dann die Werte von Variablen und Aliasen prüfen.ON ERRORMSG PAUSE
| Extended Directory Search |
| Eigenschaften |
Ohne einen grafischen Dateimanager ist eines der Hauptprobleme bei der Verwendung traditioneller
Kommando-Interpreter die Navigation in den Verzeichnissen. Nur mit sehr viel DIR und CD hangelt
man sich durch die Unterverzeichnisse und verliert deshalb schnell den Überblick.
Bei JP-Software hat man sich darüber Gedanken gemacht und ist als Lösung auf den
"Extended Directory Seach" gekommen.
Mit dieser Technik können Sie die in beliebige Verzeichnisse wechseln, auch wenn Sie Pfad-
oder Verzeichnisnamen nur teilweise und unvollständig kennen. Sie geben einfach den bekannten
Teilstring nach einem CD oder CDD am Prompt ein. Sie können auch den sog. "Automatischen
Verzeichniswechsel" benutzen. Hierbei geben Sie nach dem Verzeichnisnamen nur einen Backslash
ein und drücken dann RETURN.
4DOS durchsucht die "Extended Search Database" und bringt Sie direkt zu dem Laufwerk und
Verzeichnis, wenn eine Übereinstimmung gefunden wurde. Wenn es mehrere Übereinstimmungen
gibt, präsentiert 4DOS Ihnen ein Auswahlfenster aus dem Sie Ihr Zielverzeichnis wählen
können. Wenn keine Übereinstimmung gefunden wurde erscheint eine Fehlermeldung.
| Anwendung |
Zuerst müssen Sie die "Extended Search Database" erzeugen, um diese Technik
des Verzeichniswechsels benutzen zu können. Dazu geben Sie am Prompt ein:
4DOS durchsucht alle Laufwerke und legt die Datenbasis an. Sie befindet sich im Hauptverzeichnis von C: und ist eine Datei mit dem Namen JPSTREE.IDX . In dieser Datei stehen die Namen aller Verzeichnisse auf allen Laufwerken.C:\ > CDD /S Indexing drive C: Indexing drive D:
Als nächstes geben Sie das Kommando OPTION ein. In dem Dialogfenster wählen Sie den Menüpunkt "Configure/Command Line 2". Wählen Sie in der Box "Extended Directory Search" den Searchlevel 1, 2 oder 3. Verlassen Sie Programm mit "Exit/Use".
Sie können die Einstellungen dauerhaft in der 4DOS.INI speichern, wenn Sie statt USE beim Verlassen den Befehl SAVE wählen. Dadurch wird in dir 4DOS.INI die Option "FuzzyCD=n" eingefügt. Für "n" können hier die Werte 0, 1, 2 oder 3 stehen. Die Werte haben folgende Bedeutung:
| FuzzyCD = 0 | "Extended Directory Search" ist abgeschaltet. Die Datenbasis JPSTREE wird ignoriert. "Automatischer Verzeichniswechsel" funktioniert, jedoch müssen Pfade explizit angegeben werden. |
| FuzzyCD = 1 | "Extended Directory Search" ist eingeschaltet. Die gesuchten Verzeichnisnamen müssen exakt mit den Zielverzeichnisnamen übereinstimmen. |
| FuzzyCD = 2 | "Extended Directory Search" ist eingeschaltet. Die gesuchten Verzeichnisnamen müssen exakt (wie bei FuzzyCD =1) oder mit dem Anfangsteil mit den Zielverzeichnisnamen übereinstimmen. |
| FuzzyCD = 3 | "Extended Directory Search" ist eingeschaltet. Die gesuchten Verzeichnisnamen müssen exact (wie bei FuzzyCD = 1) übereinstimmen oder den Suchstring im Zielverzeichnisnamen enthalten. |
| Tips |
Diese Art der Verzeichnisnavigation funktioniert mit den Befehlen CD, CDD, PUSHD und den
"Automatischen Verzeichniswechseln".
Zur Rückkehr zu einem vorherigen Verzeichnis können Sie die Befehle CD -,
CDD - und POPD benutzen. Außerdem steht die Technik des "Directory History
Window" zur Verfügung. Mit dieser können Sie Ihr Zielverzeichnis aus der
Liste der bisher besuchten Verzeichnisse auswählen.
Zurück zur "Einführung in 4DOS"
März 1998
email: schaetti@informatik.uni-hamburg.de