Debugger starten

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.


Debugger unter Natural Security

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.

Voraussetzungen für den Betrieb

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-Umgebung verwalten - Menü: Debug Environment Maintenance.

Batch-Verarbeitung

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.

Beispiel für das Erstellen und Drucken von Statistiken im Batch-Modus

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
/*

Debugger aufrufen

Beginn der AnweisungslisteUm den Debugger aufzurufen:

  1. 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

  2. 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.

  3. 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.

Beginn der Anweisungsliste 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.

Standard-Objekt

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.