NetMan Debugger

[Start]  [Zurück]  [Vorwärts]  

Der NetMan Debugger ist ein Werkzeug, mit dem Sie unkompliziert und trotzdem detailliert den korrekten Ablauf Ihrer Skripte prüfen. In diesem Kapitel lesen Sie, wie Sie den Debugger bedienen und, anhand eines Beispiels, wie Sie mit dem Debugger Skripte prüfen.

Sie starten den Debugger aus dem Skripteditor, indem Sie im Menüband die Schaltfläche Debug klicken:

 

debugger_start01

 

Das aktuelle Skript wird im Hauptfenster des Debuggers geöffnet:

 

debugger_start02

 

Das Hauptfenster des Debuggers verfügt über folgende Fenster und Bedienelemente:

A. Programmmenü. Über das Programmmenü starten Sie Programmfunktionen und Hilfsprogramme wie den Environment Monitor.

B. Menüband. Im Menüband haben Sie Zugriff auf alle Programmfunktionen.

C. Skriptfenster. Im Skriptfenster sehen Sie die Aktionssequenz des Skripts.

D. Ablaufmeldungen. In diesem Fenster sehen Sie die Ablaufmeldungen zu jedem der Verarbeitungsschritte.

E. Environmentfenster. Im Environmentfenster sehen Sie die Environmentvariablen des Skripts.

 

Im Menüband haben Sie Zugriff aus folgende Funktionen:

NetMan Tools. Öffnet die NetMan Tools.

Skripteditor. Zeigt das Skript im Skripteditor.

Start. Startet den Skriptablauf. Das Skript wird vom Anfang bis zum Ende durchlaufen.

Schritt. Startet den nächsten Verarbeitungsschritt der Aktionsabfolge. Das Skript wird Schritt für Schritt ausgeführt. Nach jedem Verarbeitungsschritt wird pausiert.

Neustart. Setzt die Aktionsabfolge zurück.

Test. Startet den Testmodus. Im Testmodus testen Sie den Skriptablauf, ohne das Dateien verändert oder Registry-Einträge geschrieben werden.

Stopp. Stoppt den Skriptablauf.

Setzen. Aktiviert alle Breakpoints.

Entfernen. Entfernt alle Breakpoints.

 

Environment. Zeigt das Environmentfenster.

Ablaufmeldungen. Zeigt die Ablaufmeldungen.

 

Skriptfenster:

Im Skriptfenster sehen Sie die einzelnen Verarbeitungsschritte der Aktionsabfolge. Die Verarbeitung erfolgt von oben nach unten. Die Kontrollkästchen vor den Verarbeitungsschritten aktivieren einen Breakpoint für den jeweiligen Arbeitsschritt. Aktivieren Sie einen Breakpoint, wird die Aktionsabfolge an dieser Stelle unterbrochen. In der Spalte hinter den Breakpoints wird bei der Verarbeitung durch ein Symbol gezeigt, ob ein Verarbeitungsschritt erfolgreich ausgeführt wurde (gekennzeichnet durch einen grünen Haken) oder nicht (gekennzeichnet durch ein Ausrufezeichen). In der Spalte Aktion sehen Sie außerdem den Verarbeitungsschritt als Nummer und den Namen der Aktion. Die drei Symbolspalten nach der Spalte Aktion haben folgende Bedeutung:

ico_action_process Die Aktion ist zum Ausführen markiert.

ico_action_system Die Aktion wird im SYSTEM-Konto ausgeführt.

ico_action_locked Auf die Aktion sind Ausführungsrechte gesetzt.

 

Die Spalte Rückgabewert zeigt die Rückgabewerte der jeweiligen Verarbeitungsschritte. Die Spalte Beschreibung zeigt die Beschreibung, die in der jeweiligen Aktion als Beschreibung hinterlegt ist.

Ablaufmeldungen:

Im Fenster Ablaufmeldungen sehen Sie zu den jeweiligen Verarbeitungsschritten die Ablaufmeldungen des Systems. So sehen Sie direkt, welches Problem bei einem Arbeitsschritt auftritt.

Environmentfenster:

Im Environmentfenster sehen Sie alle Variablen, die das Skript ins Environment schreibt.

 

Beispiel: Skript prüfen mit dem NetMan Debugger

Im Beispiel verwenden wir ein Skript, das für die Arbeit mit einem bestimmten Programm ein Netzwerklaufwerk mit Benutzerdaten und einen Netzwerkdrucker verbindet. Nach Beenden des Programms werden auch die Netzwerkressourcen wieder getrennt. Zusätzlich gibt es eine Fehlerkontrolle mittels einer Aktion Bedingungsmarke. Wir starten den NetMan Debugger im Menüband über die Schaltfläche Debug. Im Debugger starten wir im Menüband über die Schaltfläche Schritt den ersten Verarbeitungsschritt:

 

debug_ex01

 

Gleich beim ersten Verarbeitungsschritt tritt ein Fehler auf, zu erkennen an dem roten Ausrufezeichen. Wir schauen auf die Ablaufmeldungen:

 

debug_ex02

 

Die Spalte # zeigt, dass es sich um die Ablaufmeldungen der ersten Aktion handelt. Wir sehen, dass die Laufwerkszuweisung fehlgeschlagen ist und dass vom Betriebssystem der Fehler 67, „Der Netzwerkname wurde nicht gefunden", zurückgeliefert wird. Außerdem zeigt sich die grundlegende Verarbeitungslogik von NetMan Desktop Manager: Liefert eine Aktion einen Fehler, wird die Skriptverarbeitung abgebrochen. Definieren wir stattdessen eine Rückgabevariable, verändert sich die Ausgabe wie folgt:

 

debug_ex03

 

Das Verbinden des Netzwerklaufwerks schlägt fehl, aber da eine Rückgabevariable definiert wurde, wird der Wert „0" für „Fehler" in die Rückgabevariable geschrieben und die Skriptverarbeitung fortgesetzt. In unserem Beispiel bedeutet dies, dass direkt zur Aktion 6 (Bedingungsmarke) gesprungen wird, die den Fehlerfall behandelt. Generell gilt: Ist eine Rückgabevariable definiert, wird NetMan Desktop Manager die Skriptverarbeitung nicht abbrechen, da erwartet wird, dass die Rückgabevariable entsprechend ausgewertet wird.

Der eigentliche Fehler in unserem Beispiel ist ein Schreibfehler in der Systemvariablen USERNAME:

 

debug_ex04

 

Im markierten Bereich steht links der String, wie er im Eingabefeld eingegeben wurde (Variablen sind codiert), rechts steht die Klartextausgabe. An der Ausgabe erkennen wir, dass die Variable aufgrund des Schreibfehlers nicht korrekt ausgewertet wird. Wir korrigieren die Variable und die Aktion wird fehlerfrei ausgeführt:

 

debug_ex05

 

Im Vergleich zu Rechtschreibfehlern können Logikfehler schwerer zu erkennen sein. Im Menüband starten wir über Start die komplette Verarbeitung unseres Skripts:

 

debug_ex06

 

Das gelbe Häkchen vor Verarbeitungsschritt 3 zeigt, dass die Aktion verarbeitet, aber nicht ausgeführt wurde. Im Beispiel wurde hier eine Berechtigung mit der Bedingung (Variable) „printer=0" auf die Aktion vergeben. Da die Variable printer in unserer aktuellen Aktionsverarbeitung gleich 1 ist (siehe Verarbeitungsschritt 2), wird die Aktion zwar verarbeitet, aber übersprungen. Bei der Verarbeitung von Aktion 7 kommt es zu einem kritischen Fehler, der die Skriptverarbeitung abbricht. Bereits im Skriptfenster erkennen wir, dass die erforderliche Bedingung für das Ausführen der Aktion (userdrive=0) nicht erfüllt ist. Betrachten wir die Ablaufmeldungen:

 

debug_ex07

 

Die Aktion Bedingungsmarke regelt den Fehlerfall, falls die Rückgabevariable userdrive den Wert „0" annimmt, also das Netzwerklaufwerk nicht verbunden werden konnte. In diesem Fall wird die in Aktion 8 definierte Fehlermeldung gezeigt und die Skriptverarbeitung beendet, ohne den Netzwerkdrucker zu verbinden oder das Programm zu starten. In der zweiten Zeile der Ablaufmeldungen sehen Sie, dass für die Aktion keine Berechtigung definiert wurde, weshalb Sie in jedem Fall ausgeführt wird, wenn die Skriptverarbeitung Aktion 7 erreicht. Das Skript würde auch in der vorliegenden Form funktionieren, da die Skriptverarbeitung stoppt und keine nachfolgenden Aktionen mehr ausgeführt werden. Die korrekte Lösung für das vorliegende Problem ist jedoch, die Aktion Bedingungsmarke und die folgenden Aktionen mit der Berechtigung (Variable) „userdrive=0" zu versehen, damit sie wirklich nur im Fehlerfall ausgeführt werden. Wir korrigieren das Skript entsprechend. Im Ergebnis erfolgt die Skriptverarbeitung fehlerfrei:

 

debug_ex08