Breakpoint Maintenance (Verwaltung der Breakpoints)

#### Search Results

Search

# Breakpoint Maintenance (Verwaltung der Breakpoints)

Ein Breakpoint (Haltepunkt) bewirkt die Unterbrechung der Ausführung eines Natural-Objekts an einer bestimmten Statement-Zeile.

In diesem Abschnitt erfahren Sie, wie und wann Sie Breakpoints setzen.

Beachten Sie, dass Sie die hier beschriebenen Verwaltungsfunktionen auch aus einem Objekt-Quellcode heraus aufrufen können, indem Sie die Funktion List object source benutzen (siehe List Object Source (Objekt-Quellcode anzeigen))

Um die Breakpoint Maintenance (Verwaltung der Breakpoints) aufzurufen:

- Geben Sie im Hauptmenü Debug Main Menu den Funktionscode `B` ein.

  Oder:
  Geben Sie folgendes Direktkommando ein:

      BM

  Das Menü Breakpoint Maintenance erscheint.

Dieses Kapitel beschreibt Bedingungen für die Benutzung der Breakpoint-Verwaltung, die im Menü Breakpoint Maintenance zur Verfügung stehenden Funktionen und die in einem Breakpoint-Bildschirm vorhandenen Felder und Spalten.

- Verwendungsbedingungen

- Test-Modus ON/OFF setzen

- Breakpoint aktivieren

- Breakpoint deaktivieren

- Breakpoint löschen

- Breakpoint anzeigen

- Breakpoint ändern

- Breakpoint setzen

- Felder und Spalten in Breakpoint-Bildschirmen

## Verwendungsbedingungen

Einen Breakpoint können Sie setzen, indem Sie den Namen des zu verarbeitenden Natural-Objekts und im Quellcode des Objekts die Zeilennummer angeben, wo der Breakpoint ausgeführt werden soll.

Sobald ein Breakpoint angegeben wurde, bleibt er für die gesamte Natural-Sitzung gesetzt, es sei denn, Sie löschen ihn.

Ein Breakpoint bezieht sich auf eine bestimmte Zeilennummer im Quellcode. Deshalb kann eine nachträgliche Änderung des Quellcode zur Folge haben, dass der Breakpoint nicht mehr für das gewünschte Statement gilt und somit das Natural-Objekt nicht mehr an der gewünschten Stelle unterbrochen wird. Um dieses Problem bei Programmschleifen zu umgehen, können in diesen Schleifen Statement-Labels gesetzt werden (siehe auch Beispiel mit Statement-Labels im Leitfaden zur Programmierung). Für diese Statement-Labels gesetzte Breakpoints werden auf die korrekte Zeilennummer angepasst, wenn Statement-Zeilen eingefügt oder gelöscht werden.

Der eindeutige Bezeichner für einen Breakpoint ist die vom Debugger zugewiesene Spy-Nummer.

An folgenden Stellen können keine Breakpoints gesetzt werden:

- In Kommentarzeilen,

- in einer beliebigen Statement-Zeile außer der ersten Zeile (wenn ein einzelnes Statement mehr als eine Programmzeile belegt,

- in Zeilen, die lediglich eines der folgenden Statements enthalten:

  - `AT BREAK OF`

  - `AT END OF DATA`

  - `AT END OF PAGE`

  - `AT START OF DATA`

  - `AT TOP OF PAGE`

  - `BEFORE BREAK`

  - `DECIDE`

    Siehe auch die Einschränkungen, die für die Benutzung gelten, im Abschnitt Voraussetzungen für den Betrieb.

  - `DEFINE SUBROUTINE`

  - `DEFINE WINDOW`

  - `FORMAT`

  - `IF NO RECORDS FOUND`

  - `ON ERROR`

  - `OPTIONS`

Ob es möglich ist oder nicht, Breakpoints für Zeilen zu setzen, die mit dem Natural Optimizer Compiler kompiliert wurden, ist abhängig von der Einstellung der Option `NODBG` im `OPTIONS`-Statement. Weitere Informationen siehe Natural-Statement OPTIONS im Abschnitt Optimizer Compiler aktivieren in der Natural Optimizer Compiler-Dokumentation.

## Test-Modus ON/OFF setzen

Siehe Abschnitt Test-Modus ein- und ausschalten.

## Breakpoint aktivieren

Um den aktuellen Status angegebener Breakpoints auf aktiv zu setzen:

- Geben Sie im Menü Breakpoint Maintenance den Funktionscode `A` und einen Objektnamen und/oder eine Zeilennummer ein.

  Oder:
  Benutzen Sie das Direktkommando `ACTIVATE`. Syntax-Beschreibung siehe Abschnitt Debug-Kommandoübersicht und -syntax.

  Wenn Sie den Objektnamen oder eine Zeilennummer nicht eingeben, werden alle Breakpoints aktiviert.

## Breakpoint deaktivieren

Um den aktuellen Status angegebener Breakpoints auf inaktiv zu setzen:

- Geben Sie im Menü Breakpoint Maintenance den Funktionscode `B` und einen Objektnamen und/oder eine Zeilennummer ein.

  Oder:
  Benutzen Sie das Direktkommando `DEACTIVATE`. Syntax-Beschreibung siehe Abschnitt Debug-Kommandoübersicht und -syntax.

  Wenn Sie den Objektnamen oder eine Zeilennummer nicht eingeben, werden alle Breakpoints deaktiviert.

## Breakpoint löschen

Um angegebene Breakpoints zu löschen:

- Geben Sie im Menü Breakpoint Maintenance den Funktionscode `C` und einen Objektnamen und/oder eine Zeilennummer ein.

  Oder:
  Benutzen Sie das Direktkommando `DELETE`. Syntax-Beschreibung siehe Abschnitt Debug-Kommandoübersicht und -syntax.

  Wenn Sie den Objektnamen oder eine Zeilennummer nicht eingeben, werden alle Breakpoints gelöscht.

## Breakpoint anzeigen

Um einen Breakpoint anzuzeigen:

- Geben Sie im Menü Breakpoint Maintenance den Funktionscode `D`, einen Objektnamen und/oder eine Zeilennummer ein.

  Wenn Sie den Objektnamen nicht angeben, wird das Standard-Objekt (falls angegeben) benutzt.

  Oder:
  Benutzen Sie das Direktkommando `DISPLAY`. Syntax-Beschreibung siehe Abschnitt Debug-Kommandoübersicht und -syntax.

  Wenn für das angegebene Objekt und Zeilennummer ein Breakpoint gesetzt worden ist, erscheint der Bildschirm Display Breakpoint mit allen Breakpoint-Definitionen, zum Beispiel:

      11:16:12              ***** NATURAL TEST UTILITIES *****             2006-02-07
      Test Mode ON                - Display Breakpoint -              Object

      Spy number ..............   1
      Initial state ........... active         Current state .. active
      Breakpoint name ......... BRK0130        DBID/FNR ....... 10/32
      Object name ............. DEBPGM1        Library ........ SAG
      Line number ............. 0130
      Label ...................
      Skips before execution ..     0
      Max number executions ...     0
      Number of activations ...     0
      Error in definition ..... - none -

      Commands ... BREAK

      Command ===>
      Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
            Help        Exit  Last  Mod   Flip                                Canc

  Falls kein eindeutiger Breakpoint gefunden wird, erscheint der Bildschirm List Breakpoints (Beschreibung siehe unten).

  Beschreibung der Felder im Bildschirm Display Breakpoint und der Spalten im Bildschirm List Breakpoints siehe Felder und Spalten in Breakpoint-Bildschirmen.

Um Breakpoints aufzulisten:

- Geben Sie im Menü Breakpoint Maintenance den Funktionscode `D`, einen Objektnamen oder eine Zeilennummer ein. Sie können Stern-Notation (*) benutzen, um einen Bereich von Objektnamen anzugeben, zum Beispiel: `ABC*`. Wenn Sie nur einen Stern (*) eingeben, werden alle Objektnamen ausgewählt. Wenn Sie keinen Objektnamen angeben, wird das Standard-Objekt (falls angegeben) benutzt.

  Oder:
  Benutzen Sie das Direktkommando `DISPLAY`. Syntax-Beschreibung siehe Abschnitt Debug-Kommandoübersicht und -syntax.

  Der Bildschirm List Breakpoints erscheint. Darin werden alle Breakpoints aufgelistet, die für das bzw. die Objekte oder eine Zeilennummer gesetzt sind, zum Beispiel:

      11:41:56              ***** NATURAL TEST UTILITIES *****             2006-01-30
      Test Mode ON                 - List Breakpoints -               Object
                                                                                  All
      Co No. BP Name      Library  Object   Line  DBID   FNR Stat Skips Execs Count E
             *___________ *_______ *_______ 0000             I  C
      __   1 BRK0130      SAG      DEBPGM1  0130    10    32 A  A     0     0     0
      __   2 BRKPGM3-END  SAG      DEBPGM3  END     10    32 A  A     0     0     0
      __   3 BRKPGM3-300  SAG      DEBPGM3  0300    10    32 A  A     0     0     0
      __   4 BRKPGM2-400  SAG      DEBPGM2  0400    10    32 A  A     0     0     0
      __   5 BRKPGM2-430  SAG      DEBPGM2  0430    10    32 A  A     0     0     0
      __   6 BRKPGM1-END  SAG      DEBPGM1  END     10    32 A  A     0     0     0
      __   7 BRKPGM1-ALL  SAG      DEBPGM1  ALL     10    32 A  A     0     0     0

      Command ===>
      Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
            Help        Exit  Last        Flip  -     +                       Canc

  Die Liste ist in aufsteigender Reihenfolge nach den Debug-Eintrag-Nummern (Spy-Nummern) sortiert, die in der Spalte No. enthalten sind.

  Informationen zu den Spalten im Bildschirm List Breakpoints und zu den Zeilenkommandos, die bei einem Listeneintrag ausgeführt werden können, siehe Felder und Spalten in Breakpoint-Bildschirmen.

## Breakpoint ändern

Um einen Breakpoint zu ändern:

1. Geben Sie im Menü Breakpoint Maintenance den Funktionscode `M`, einen Objektnamen und eine Zeilennummer ein. Wenn Sie keinen Objektnamen angeben, wird das Standard-Objekt (falls angegeben) benutzt.

   Oder:
   Benutzen Sie das Direktkommando `MODIFY`. Syntax-Beschreibung siehe Abschnitt Debug-Kommandoübersicht und -syntax.

   Wenn ein eindeutiger Breakpoint angegeben wurde, erscheint der Bildschirm Modify Breakpoint, in dem Sie die Feldeinträge ändern können. Beschreibung der Felder im Bildschirm Modify Breakpoint siehe Felder und Spalten in Breakpoint-Bildschirmen.

   Wird kein eindeutiger Breakpoint gefunden, dann erscheint der Bildschirm List Breakpoints (siehe Abschnitt Breakpoint anzeigen).

2. Wenn Sie die Bearbeitung der Breakpoint-Definitionen beendet haben, drücken Sie PF3 (Exit) oder PF5 (Save), um die Änderungen zu speichern. Informationen zu Validierungen an Debug-Einträgen siehe Abschnitt Verwaltung und Validierung der Debug-Einträge.

   Wenn Sie PF12 (Canc) drücken, wird die Bearbeitung abgebrochen und der Breakpoint bleibt unverändert.

## Breakpoint setzen

Um einen Breakpoint für eine Sitzung zu setzen:

- Geben Sie im Menü Breakpoint Maintenance den Funktionscode `S`, einen Objektnamen und/oder eine Zeilennummer ein.

  Oder:
  Benutzen Sie das Direktkommando `SET`. Syntax-Beschreibung siehe Abschnitt Debug-Kommandoübersicht und -syntax.

  Wenn Sie keinen Objektnamen, sondern eine gültige Zeilennummer angeben, wird der Name des Standard-Objekts (falls angegeben) benutzt. Falls kein Standard-Objekt angegeben ist, erscheint ein Auswahlfenster, in dem alle in der aktuellen Library enthaltenen Objekte angezeigt werden.

  Ein für einen Copycode gesetzter Breakpoint kann jedoch nur dann auf Gültigkeit geprüft werden, wenn ein Programm ausgeführt wird, das den Copycode enthält. Informationen zu Validierungen an Debug-Einträgen siehe Abschnitt Verwaltung und Validierung der Debug-Einträge.

  Der Breakpoint erhält das Standard-Kommando (`BREAK`), sein Anfangsstatus und sein aktueller Status werden auf aktiv gesetzt und es werden keine Ausführungseinschränkungen angegeben. Achtung: Wenn Sie beim Setzen eines Breakpoint das Kommando `BREAK` löschen und kein Kommando eingeben, das einen Dialog öffnet, hat der Debugger keine Möglichkeit, während der Programmunterbrechung die Steuerung zu übernehmen.

## Felder und Spalten in Breakpoint-Bildschirmen

Die folgende Tabelle enthält die Beschreibung der Felder in den Bildschirmen Display Breakpoint und Modify Breakpoint und die Spalten im Bildschirm List Breakpoints:

Feld | Spalte | Erläuterung
--- | --- | ---
Test Mode |  | Gibt an, ob der Test-Modus auf `ON` oder `OFF` gesetzt ist.
Object |  | Zeigt den Namen des Standard-Objekts (siehe Debugger starten), falls angegeben.
| Co | Feld zur Eingabe eines der folgenden Zeilenkommandos:
Kommando | Aktion
`AC` | Breakpoint aktivieren
`DA` | Breakpoint deaktivieren
`DI` | Breakpoint anzeigen
`MO` | Breakpoint ändern
`DE` | Breakpoint löschen
`?` | Gültige Zeilenkommandos auflisten
`.` | Breakpoint-Bildschirm verlassen
Spy number | No. | Eine eindeutige Nummer, die vom Debugger beim Setzen des Breakpoint zugewiesen wird.
Initial state | Stat I | Gibt den Anfangszustand (Initial) und den aktuellen Zustand (Current) des Breakpoint an: Aktiv (`A`) oder Inaktiv (`I`) an.
Current state | Stat C
Breakpoint name | BP Name | Der Name des Breakpoint. Gültige Werte: 1 bis 12 Zeichen. Der Standard-Name für einen Breakpoint besteht aus dem Namen des Objekts und der Zeilennummer.
DBID/FNR | DBID | Die Datenbankkennung (DBID) und die Dateinummer (FNR) der Systemdatei, in der das Natural-Objekt gespeichert ist.
FNR
Library | Library | Der Name der Library, die das Objekt enthält.
Object name | Object | Der Name des Objekts, das in der aktuellen Library oder in einer ihrer Steplibs verfügbar ist.
Line number | Line | Die Zeilennummer eines Statement im Quellcode des Objekts. Siehe auch Verwendungsbedingungen. Als Zeilennummern können Sie auch `BEG`, `END` oder `ALL` angeben:
`BEG` | Gibt den Breakpoint an, der die Programmausführung bei dem ersten Statement, das in einem Objekt ausgeführt wird, unterbrechen soll.
| `BEG`-Breakpoints können nicht für Copycode angegeben werden.
`END` | Gibt den Breakpoint an, der die Programmausführung bei dem letzten Statement, das in einem Objekt ausgeführt wird, unterbrechen soll, zum Beispiel, ein `END`- oder ein `FETCH`-Statement.
| `END`-Breakpoints können nicht für Copycode angegeben werden.
`ALL` | Gibt an, dass ein Breakpoint die Programmausführung bei jeder Zeile, die ein ausführbares Statement enthält, unterbrechen soll.
Label |  | Bezieht sich auf ein zuvor im Quellcode eines Objekts gesetztes Label für Statements, die Verarbeitungsschleifen definieren, siehe auch Systemvariablen anzeigen weiter oben. Gültige Werte: 1 bis 32 Zeichen.
Skips before execution | Skips | Legt fest, dass der Breakpoint erst dann ausgeführt werden soll, wenn die entsprechende Statement-Zeile eine bestimmte Anzahl von Malen ausgeführt wurde. Gültige Werte: 0 (Standardwert) bis 32767.
Max number executions | Execs | Ein beliebiger Wert größer als Null (0) legt die maximale Anzahl der Breakpoint-Ausführungen fest. Gültige Werte: 0 (Standardwert) bis 32767.
Number of activations | Count | Gibt an, wie viele Male ein Breakpoint für die betreffende Statement-Zeile aktiviert wurde. Der Zähler wird zurückgesetzt, wenn das Programm auf Level 1 gestartet wird.
Error in definition | E | Zeigt an, dass die Statement-Zeile in der Breakpoint-Definition während der Programmausführung nicht in dem katalogisierten Objekt gefunden werden kann. Dieser Fehler kann verursacht werden, wenn ein Objekt während des Debugging-Vorgangs geändert und neu katalogisiert wird.
Commands |  | Bis zu sechs Debug-Kommandos. Geben Sie jeweils ein Kommando pro Zeile ein. Eine Zusammenfassung der zur Verfügung stehenden Kommandos finden Sie im Abschnitt Debug-Kommandoübersicht und -syntax. Vorsicht Wenn Sie beim Setzen eines Breakpoint das Kommando `BREAK` löschen und kein Kommando eingeben, das einen Dialog öffnet, hat der Debugger keine Möglichkeit, während der Programmunterbrechung die Steuerung zu übernehmen.

### On this page

- Verwendungsbedingungen
- Test-Modus ON/OFF setzen
- Breakpoint aktivieren
- Breakpoint deaktivieren
- Breakpoint löschen
- Breakpoint anzeigen
- Breakpoint ändern
- Breakpoint setzen
- Felder und Spalten in Breakpoint-Bildschirmen