Dieser Abschnitt beschreibt Grundvoraussetzungen für den Betrieb und enthält eine grobe Richtlinie für die Vorgehensweise bei der Planung der Anwendung des Debuggers.
Die Benutzung des Debuggers kann durch Natural Security kontrolliert werden:
Sie können den Debugger gegen nicht autorisierte 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 Quellcode mit dem Kommando
RUN ausführen.
Ein effizientes und korrektes Debugging setzt voraus, dass der Quellcode im Source-Objekt
mit dem kompilierten Quellcode 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, dass 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 Debuggers 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 Debugger 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.