Version 6.3.8 für Windows
 —  Debugger  —

Breakpoints und Watchpoints setzen

Dieses Dokument behandelt die folgenden Themen:


Über Breakpoints und Watchpoints

Zwei Typen von Einträgen können in einem Programm zu Debugging-Zwecken definiert werden:

Jeder Breakpoint oder Watchpoint wird in dem betreffenden Register des Break- und Watchpoints-Fensters angezeigt. Für jeden Breakpoint wird die Zeilennummer angezeigt, in der der Breakpoint definiert wurde. Jeder Watchpoint erhält einen Namen, der dem Namen der Variablen entspricht, zu der er gehört; außerdem wird die Unterbrechungsbedingung (Break Condition) angezeigt.

Mittels des Kontrollkästchens in der ersten Spalte eines Registers kann ein Breakpoint oder Watchpoint während einer Debugging-Session jederzeit aktiviert oder deaktiviert werden. Siehe Breakpoints und Watchpoints zeitweise deaktivieren.

Für jeden Breakpoint oder Watchpoint wird die Anzahl der gefundenen Treffer (Hit Count) angezeigt, die sich jedes Mal erhöht, wenn der Debug-Eintrag durchlaufen wird. Die Anzahl der Ausführungen eines Debug-Eintrags kann allerdings auf eine der folgenden Arten eingeschränkt werden:

Wenn ein Breakpoint oder Watchpoint innerhalb eines anderen Objekts als des gerade aktiven Objekts vorgefunden wird, öffnet sich ein neues Editor-Fenster mit der Source dieses neuen Objekts.

Seitenanfang

Breakpoint hinzufügen und entfernen

Sie können im Breakpoints-Register des Break- und Watchpoints-Fenster einen Breakpoint für die aktuelle Cursor-Position hinzufügen. Oder wenn ein Breakpoint für diese Cursor-Position bereits vorhanden ist, können Sie ihn aus dem Breakpoints-Register entfernen.

Ein Dialogfeld erscheint in diesem Fall nicht. Wenn Sie den Breakpoint ändern möchten (zum Beispiel, um die maximale Anzahl der Ausführungen zu definieren), siehe Breakpoint ändern.

Siehe auch Breakpoints und Watchpoints löschen.

Anmerkung:
In der lokalen Umgebung und in einer Remote-Umgebung (SPoD) ist es auch möglich, Breakpoints zu setzen und zu entfernen (wie unten beschrieben), wenn der Debugger nicht aktiv ist. Jeder Breakpoint, der im Editor definiert wurde, wird in diesem Fall geprüft, wenn der Debugger gestartet wird. Wenn der Breakpoint an der definierten Position nicht zulässig ist, wird er in die nächste Zeile verschoben, in der es möglich ist, einen Breakpoint zu definieren. Siehe auch Debugger-Fenster in der Dokumentation Natural Studio benutzen.

Beginn der AnweisungslisteBreakpoint ein- oder ausschalten

  1. Markieren Sie die Zeile, in der Sie einen Breakpoint setzen oder entfernen möchten.

  2. Rufen Sie das Kontextmenü im Editor auf, und wählen Sie Toggle Breakpoint (Breakpoint ein-/ausschalten).

    Oder:
    Drücken Sie F9.

    Oder:
    Wenn die Debug-Symbolleiste angezeigt wird, wählen Sie die folgende Schaltfläche in der Symbolleiste:

    Schaltfläche in der Symbolleiste

    Oder:
    Am linken Rand des Editor-Fensters (wo gewöhnlich die Symbole für die Breakpoints erscheinen), klicken Sie eine Position neben der erforderlichen Zeile an.

    Wenn ein Breakpoint gesetzt wird, erscheint jetzt ein Symbol am linken Rand des Editor-Fensters. Siehe Im Editor-Fenster benutzte Symbole. Ein Eintrag für den Breakpoint erscheint auch im Breakpoints-Register des Break- und Watchpoints-Fensters.

    Wenn ein Breakpoint entfernt wurde, erscheint das betreffende Symbol nicht mehr. Der Eintrag für den Breakpoint wird aus dem Breakpoints-Register des Break- und Watchpoints-Fensters entfernt.

Seitenanfang

Breakpoint ändern

Sie können jeden Breakpoint ändern, der gerade im Break- und Watchpoints-Fenster angezeigt wird.

Beginn der AnweisungslisteBreakpoint ändern

  1. Markieren Sie den erforderlichen Breakpoint, rufen Sie das Kontextmenü auf, und wählen Sie den Befehl Modify (Ändern).

    Es erscheint das folgende Dialogfeld:

    Modify Breakpoint

  2. Setzen Sie die erforderlichen Optionen:

    Hits before Break (Treffer vor der Unterbrechung)

    Die Anzahl der übersprungenen Einträge vor der Ausführung des Breakpoints, wenn er nicht ausgeführt werden soll, bis das Programm eine bestimmte Anzahl von Malen ausgeführt wurde. Die Voreinstellung ist 0.

    Number of Breaks (Anzahl der Unterbrechungen)

    Die maximale Anzahl der Ausführungen des Breakpoints. Nachdem diese Anzahl erreicht wurde, wird der Breakpoint ignoriert. Die Voreinstellung ist 0.

    Reset Hit Count (Anzahl der gefundenen Treffer zurücksetzen)

    Wenn Sie diese Befehlsschaltfläche wählen, wird die aktuelle Anzahl der Treffer (Hit Count) auf 0 zurückgesetzt.

  3. Wählen Sie die Befehlsschaltfläche OK.

Seitenanfang

Watchpoint hinzufügen

Watchpoints erscheinen im Watchpoints-Register des Break- und Watchpoints-Fensters.

Sie können Watchpoints auf unterschiedliche Arten hinzufügen:

Watchpoint im Editor-Fenster hinzufügen

Sie können die Variable an der aktuellen Cursor-Position im Editor-Fenster zum Watchpoints-Register des Break- und Watchpoints-Fensters hinzufügen. Es erscheint kein Dialog in diesem Fall.

Beginn der AnweisungslisteVariable als Watchpoint definieren

  1. Markieren Sie die Variable im Editor, indem Sie den Cursor auf eine beliebige Position innerhalb des Variablennamens stellen.

  2. Rufen Sie das Kontextmenü auf, und wählen Sie Add to Watchpoints (Zu Watchpoints hinzufügen).

    Oder:
    Drücken Sie STRG+UMSCHALT+W.

    Oder:
    Markieren Sie die Variable im Editor. Ziehen Sie die Variable mit der Maus auf das Watchpoints-Register und lassen Sie sie dort fallen.

Watchpoint aus dem Variablen-Fenster hinzufügen

Sie können eine Variable aus dem Variablen-Fenster zum Watchpoints-Register des Break- und Watchpoints-Fensters hinzufügen. Es erscheint kein Dialog in diesem Fall.

Beginn der AnweisungslisteVariable als Watchpoint definieren

  1. Markieren Sie die gewünschte Variable im Variablen-Fenster.

  2. Rufen Sie das Kontextmenü auf, und wählen Sie Add to Watchpoints (Zu Watchpoints hinzufügen).

    Oder:
    Drücken Sie STRG+UMSCHALT+W.

Watchpoint über ein Dialogfeld hinzufügen

Sie können ein Dialogfeld benutzen, um einen Watchpoint zum Watchpoints-Register des Break- und Watchpoints-Fensters hinzuzufügen.

Beginn der AnweisungslisteWatchpoint hinzufügen

  1. Wählen Sie aus dem Menü Debug den Befehl Add Watchpoint (Watchpoint hinzufügen).

    Oder:
    Rufen Sie im Watchpoints-Register des Break- und Watchpoints-Fensters das Kontextmenü auf, und wählen Sie den Befehl Add (Hinzufügen). Stellen Sie sicher, dass kein anderer Eintrag markiert ist. Sonst erscheint dieser Befehl nicht im Kontextmenü.

    Es erscheint das Dialogfeld Add Watchpoint (Watchpoint hinzufügen). Die Titelleiste gibt den Namen des aktuellen Programms und der aktuellen Library sowie die Datenbank-ID und Dateinnummer des aktuellen FUSER an.

    graphics/debug-addwatchpoint.png

  2. Setzen Sie die erforderlichen Optionen:

    Variable

    Die Variable, die im ausgetesteten Programm überwacht werden soll.

    Operator/Value (Operator/Wert)

    Um eine Bedingung für den Watchpoint zu definieren, wählen Sie einen passenden Watchpoint-Operator aus, und geben Sie einen Wert für diesen Operator an. Wenn Sie keine Bedingung angeben, gilt die Voreinstellung ("changes").

    Die Watchpoint-Operatoren sind Folgende:

    Operator Aktivierung des Watchpoints
    changes (Änderungen) Jedesmal, wenn die Variable geändert wird. Voreinstellung.
    EQ (=) Nur wenn der aktuelle Wert der Variablen gleich dem angegebenen Wert ist.
    NE (!=) Nur wenn der aktuelle Wert der Variablen ungleich dem angegebenen Wert ist.
    GT (>) Nur wenn der aktuelle Wert der Variablen größer als der angegebene Wert ist.
    LT (<) Nur wenn der aktuelle Wert der Variablen kleiner als der angegebene Wert ist.
    GE (>=) Nur wenn der aktuelle Wert der Variablen größer gleich dem angegebenen Wert ist.
    LE (<=) Nur wenn der aktuelle Wert der Variablen kleiner gleich dem angegebenen Wert ist.
    Skips before Break (Übersprungene Einträge vor der Unterbrechung)

    Die Anzahl der übersprungenen Einträge vor der Ausführung des Watchpoints, wenn er erst dann ausgeführt werden soll, wenn das Programm eine gewisse Anzahl von Malen abgelaufen ist. Die Voreinstellung ist 0.

    Number of Breaks (Anzahl der Unterbrechungen)

    Die maximale Anzahl der Ausführungen des Watchpoints. Nachdem diese Anzahl erreicht wurde, wird der Watchpoint ignoriert. Die Voreinstellung ist 0.

  3. Wählen Sie die Befehlsschaltfläche OK.

    Der Name der ausgewählten Variablen wird jetzt im Watchpoints-Register des Break- und Watchpoints-Fensters angezeigt.

Seitenanfang

Watchpoint ändern

Sie können jeden Watchpoint ändern, der im Break- und Watchpoints-Fenster angezeigt wird.

Beginn der AnweisungslisteWatchpoint ändern

  1. Markieren Sie den erforderlichen Watchpoint, rufen Sie das Kontextmenü auf, und wählen Sie den Befehl Modify (Ändern).

    Es erscheint das Dialogfeld Modify Watchpoint (Watchpoint ändern).

    Modify Watchpoint

    Dieses Dialogfeld bietet dieselben Optionen wie das Dialogfeld Add Watchpoint (Watchpoint hinzufügen). Eine Beschreibung der Optionen, die in diesem Dialogfeld angegeben werden können, finden Sie im Abschnitt Watchpoint über ein Dialogfelds hinzufügen.

    Außerdem bietet dieses Dialogfeld die Befehlsschaltfläche Reset Hit Count (Anzahl der Treffer zurücksetzen). Wenn Sie diese Befehlsschaltfläche wählen, wird die aktuelle Anzahl der Treffer (Hit Count) auf 0 zurückgesetzt.

  2. Machen Sie alle erforderlichen Änderungen, und wählen Sie die Befehlsschaltfläche OK.

Seitenanfang

Breakpoints und Watchpoints zeitweise deaktivieren

Jeder definierte Breakpoint oder Watchpoint kann zeitweise deaktiviert werden.

Beginn der AnweisungslisteBreakpoint oder Watchpoint deaktivieren

  1. Wählen Sie das erforderliche Register im Break- und Watchpoints-Fenster aus.

  2. Wählen Sie für den gewünschten Eintrag die erste Spalte des Registers aus, um die Markierung zu entfernen.

    Oder:
    Rufen Sie das Kontextmenü auf, und wählen Sie den Befehl Activate/Deactivate (Aktivieren/Deaktivieren).

    Wenn Sie einen Breakpoint deaktiviert haben, ändert sich das Symbol, das am linken Rand des Editor-Fensters angezeigt wird. Siehe Im Editor-Fenster benutzte Symbole.

Beginn der AnweisungslisteDeaktivierten Breakpoint oder Watchpoint aktivieren

  1. Wählen Sie das erforderliche Register im Break- und Watchpoints-Fenster aus.

  2. Wählen Sie für den gewünschten Eintrag die erste Spalte des Registers aus, so dass erneut eine Markierung erscheint.

    Oder:
    Rufen Sie das Kontextmenü auf, und wählen Sie den Befehl Activate/Deactivate (Aktivieren/Deaktivieren).

    Wenn Sie einen Breakpoint aktiviert haben, ändert sich das Symbol, das am linken Rand des Editor-Fensters angezeigt wird. Siehe Im Editor-Fenster benutzte Symbole.

Beginn der AnweisungslisteAlle Breakpoints oder Watchpoints deaktivieren oder aktivieren

  1. Wählen Sie das erforderliche Register im Break- und Watchpoints-Fenster aus.

  2. Stellen Sie sicher, dass kein Eintrag markiert ist (sonst wird der erforderliche Befehl nicht im Kontextmenü angezeigt), rufen Sie das Kontextmenü auf, und wählen Sie entweder den Befehl Deactivate All (Alle deaktivieren) oder Activate All (Alle aktivieren).

    Wenn Sie alle Breakpoints deaktiviert oder aktiviert haben, ändern sich die Symbole, die am linken Rand des Editor-Fensters angezeigt werden. Siehe Im Editor-Fenster benutzte Symbole.

Seitenanfang

Sourcecode für einen definierten Breakpoint oder Watchpoint zeigen

Für jeden definierten Breakpoint oder Watchpoint, der im Break- und Watchpoints-Fenster angezeigt wird (ganz gleich, ob er aktiv ist oder nicht), können Sie zur Source gehen, in der dieser Breakpoint oder Watchpoint definiert wurde.

Beginn der AnweisungslisteZur Source gehen, in der ein Breakpoint oder Watchpoint definiert wurde

  1. Wählen Sie das erforderliche Register im Break- und Watchpoints-Fenster aus.

  2. Markieren Sie den erforderlichen Eintrag, rufen Sie das Kontextmenü auf, und wählen Sie den Befehl Go To Source Code (Zum Sourcecode gehen).

    Oder:
    Klicken Sie den erforderlichen Eintrag doppelt an.

    Für einen Breakpoint erscheint die Trace-Position neben der Sourcecode-Zeile, in der der Breakpoint definiert wurde.

    Für einen Watchpoint erscheint der gesamte Sourcecode, in dem der Watchpoint definiert wurde.

Seitenanfang

Breakpoints und Watchpoints löschen

Sie können entweder markierte Breakpoints oder Watchpoints löschen, oder Sie können alle Breakpoints oder Watchpoints löschen.

Siehe auch Breakpoint hinzufügen oder entfernen.

Beginn der AnweisungslisteBreakpoint oder Watchpoint löschen

  1. Wählen Sie das erforderliche Register im Break- und Watchpoints-Fenster aus.

  2. Markieren Sie den erforderlichen Eintrag.

  3. Rufen Sie das Kontextmenü auf, und wählen Sie den Befehl Delete (Löschen).

    Oder:
    Drücken Sie ENTF.

Beginn der AnweisungslisteAlle Breakpoints oder Watchpoints löschen

  1. Wählen Sie das erforderliche Register im Break- und Watchpoints-Fenster aus.

  2. Stellen Sie sicher, dass kein Eintrag markiert ist (sonst wird der erforderliche Befehl nicht im Kontextmenü angezeigt), rufen Sie das Kontextmenü auf, und wählen Sie den Befehl Delete All (Alle löschen).

Seitenanfang

Im Editor-Fenster benutzte Symbole

Die folgenden Symbole können am linken Rand des Editor-Fensters erscheinen.

Symbol

Diese Zeile enthält einen aktiven Breakpoint.

Symbol

Diese Zeile enthält einen deaktivierten Breakpoint.

Symbol

Diese Zeile enthält einen aktiven Breakpoint. Sie enthält auch die Trace-Position.

Symbol

Diese Zeile enthält einen deaktivierten Breakpoint. Sie enthält auch die Trace-Position.

Symbol

Diese Zeile enthält einen Breakpoint, der noch nicht validiert wurde (d.h. der Debugger hat noch nicht die markierte Zeile erreicht). Der Status kann entweder als aktiv (roter Hintergrund) oder inaktiv (weißer Hintergrund) anzeigt werden.

Symbol

Diese Zeile enthält einen ungültigen Breakpoint (zum Beispiel, wenn der Breakpoint in einer Zeile nach dem END- Statement gesetzt wurde). Der Status kann entweder als aktiv (roter Hintergrund) oder inaktiv (weißer Hintergrund) angezeigt werden.

Seitenanfang