Dieser Abschnitt beschreibt Grundvoraussetzungen für den Betrieb und enthält eine grobe Richtlinie für die Vorgehensweise bei der Planung der Anwendung des Debugger.
Die Benutzung des Debugger kann durch Natural Security kontrolliert werden:
Sie können den Debugger gegen nicht authorisierte Benutzung
schützen, indem Sie den Gebrauch des Systemkommandos
TEST
, das den Debugger aufruft, unterbinden, siehe
Command
Restrictions im Abschnitt Library
Maintenance in der Natural
Security-Dokumentation.
Sie können die Benutzung des Debuggers unterbinden oder einschränken, siehe Abschnitt Components of an Environment Profile in der Natural Security-Dokumentation.
Der Debugger wird nur aufgerufen, wenn Sie ein katalogisiertes
Objekt ausführen, das in der aktuellen Library in der aktuellen
Natural-Systemdatei befindet. Der Debugger wird nicht aufgerufen, wenn Sie im
Arbeitsbereich enthaltenen Sourcecode mit dem Kommando
RUN
ausführen.
Ein effizientes und korrektes Debugging setzt voraus, dass der
Sourcecode im Source-Objekt mit dem kompilierten Sourcecode im katalogisierten
Objekt übereinstimmt, was mit dem Systembefehl STOW
gewährleistet werden kann. Wenn Sie ein Source-Objekt ändern, nachdem Sie es
katalogisiert haben, besteht die Möglichkeit, dass ein Debug-Eintrag
(Breakpoint oder Watchpoint) nicht richtig funktioniert, weil sich das
referenzierte Statement oder die referenzierte Variable geändert hat oder nicht
mehr existiert. Wenn der Debugger feststellt, das ein Source-Objekt einen
früheren Zeitstempel hat als das entsprechende katalogisierte Objekt erscheint
die Warnung Time stamps of source and cataloged object do not
match.
(Zeitstempel des Source-Objekts und des katalogisierten
Objekts passen nicht zueinander).
Der Debugger untersucht alle Natural-Objekte, die in der aktuellen
Library oder in einer ihrer Steplibs enthalten sind. Der Debugger untersucht
keine Natural-Objekte, die in der Natural-System-Library SYSLIB
oder SYSLIBS
gespeichert sind.
Für die Verwendung des Debugger gilt folgende Einschränkung:
Der Debugger kann nur bei Objekten der Natural-Version 2.3 und höher, jedoch nicht bei Natural-Objekten, die mit einer früheren Version katalogisiert wurden, angewendet werden.
Der Debugger unterstützt nur Debug-Umgebungen, die mit Natural-Version 2.3 und höher erstellt wurden. Debug-Umgebungen, die mit einer früheren Version erstellt wurden, werden ignoriert. Weitere Informationen zu Debug-Umgebungen siehe Debug Environment Maintenance (Verwaltung der Debug-Umgebung).
Obwohl der Debugger hauptsächlich für den interaktiven Gebrauch im Online-Modus ausgelegt ist, können die Debugger-Kommandos auch zur Batch-Ausführung benutzt werden, z.B. zum Setzen von Breakpoints oder Watchpoints.
Anmerkung:
Bei der Batch-Verarbeitung gelten Einschränkungen, die zur
Folge haben können, dass ein Debugger-Kommando zurückgewiesen wird.
Beispielsweise unterstützt der Debugger nicht die Kommandos
++
und +4
.
Das folgende Beispiel demonstriert den Gebrauch von Debugger-Direktkommandos im Batch-Modus, um einen Bericht über alle Aufrufstatistiken zu erstellen und zu drucken:
//NATBATCH EXEC PGM=NATBAT42, // PARM=('INTENS=1,IM=D,CF=$,PRINT=((1-2),AM=STD)') //STEPLIB DD DISP=SHR,DSN=NATURAL.V2.TEST.NUCLEUS //CMPRINT DD SYSOUT=X //SYSOUT DD SYSOUT=X //CMPRT01 DD SYSOUT=X //CMSYNIN DD * LOGON DEBUGLIB TEST PROFILE ,,,,CMPRT01 ,,,,,,$K3 ,,$K3 TEST ON TEST SET XSTAT COUNT DEBUG2P TEST PRINT XSTAT FIN /*
Um den Debugger aufzurufen:
Erstellen Sie eine Debug-Umgebung für ein Natural-Objekt oder eine Natural-Anwendung:
Rufen Sie das Hauptmenü Debug Main
Menu auf, indem Sie das Natural-Systemkommando
TEST
eingeben.
Oder:
Setzen Sie aus einer laufenden Anwendung
das Terminalkommando %<TEST
ab.
Benutzen Sie die Funktionen des Hauptmenüs Debug Main Menu, um für ein Natural-Objekt oder eine Natural-Anwendung anzugeben:
Debug Environment Maintenance (Verwaltung der
Debug-Umgebung)
Spy Maintenance (Verwaltung der
Debug-Einträge)
Breakpoint Maintenance (Verwaltung der
Breakpoints)
Watchpoint Maintenance (Verwaltung der
Watchpoints)
Call Statistics Maintenance (Statistiken über
gerufene Objekte)
Statement Execution Statistics Maintenance
(Statistiken über ausgeführte Statement-Zeilen)
Variable Maintenance
List Object Source
Aktivieren Sie den Debugger:
Geben Sie an einer Eingabeaufforderung das Kommando
TEST ON
ein.
Oder:
Geben Sie im Hauptmenü Debug
Main Menu den Funktionscode T
ein.
Führen Sie das Natural-Objekt oder die Natural-Anwendung aus.
Der Debugger hält die Programmausführung an den angegebenen Debug-Einträgen an und ruft das Debug Break-Fenster auf.
Um den Debugger zur Fehlerbehandlung aufzurufen:
Setzen Sie zu Beginn der Sitzung den Natural-Profilparameter
DBGERR
auf ON
.
Siehe auch DBGERR - Automatischer Debugger-Start bei Laufzeitfehler in der Natural-Parameter-Referenz-Dokumentation.
Oder:
Geben Sie während der Sitzung an einer Eingabeaufforderung das
Kommando TEST ON
ein oder geben Sie in einem
Debug Maintenance-Hauptmenü den Funktionscode
T
ein.
Der Debubber ruft das Debug Break-Fenster auf, wenn ein Natural-Fehler auftritt.
Siehe auch Abschnitt Fehlerbehandlung.
Die Maintenance-Funktionen des Debuggers, wie sie in den
entsprechenden Abschnitten beschrieben sind, beziehen sich auf Objekte, die Sie
entweder in den entsprechenden Namensfeldern von Menüs oder mit Direktkommandos
angeben. Wenn Sie keinen Objektnamen angeben, nimmt der Debugger standardmäßig
den Namen des aktuellen Objekts an, wie er im Feld Object
oben rechts im Hauptmenü Debug Main Menu angezeigt wird.
Bei Angabe eines Standardobjekts, ist kein Objektname in Direktkommandos und
Menüoptionen erforderlich, die zur Angabe von Breakpoints oder Watchpoints
verwendet werden. Um das Standardobjekt zu ändern, siehe Syntax des Kommandos
SET
im Abschnitt
Debug-Kommandoübersicht und
-syntax.