Bedingte Unterbrechungspunkte

Optionale Unterbrechungspunktparameter werden zur Steuerung des Verhaltens von Unterbrechungspunkten verwendet.

Wenn Sie einen Unterbrechungspunkt definieren, können Sie ihn zu einem bedingten Unterbrechungspunkt machen (ob dort gestoppt werden soll oder nicht), indem Sie diese Parameter auf der Seite Optionale Parameter eines Unterbrechungspunktassistenten angeben (üblicherweise durch Bearbeiten eines bestehenden Unterbrechungspunkts):

Optionaler Unterbrechungspunktparameter Beschreibung Typ des unterstützten Unterbrechungspunkts
Thread

Unterbrechungspunkte können threadspezifisch sein. Im Assistenten können Sie angeben, ob der Unterbrechungspunkt für alle Threads gelten soll (der Standardwert) oder nur für einen bestimmten Thread (n=one).

Dieser Parameter wird von allen Unterbrechungspunkttypen unterstützt.
Häufigkeit Verwenden Sie die Steuerelemente für die Häufigkeit, um anzugeben, wann der Debugger an einem Unterbrechungspunkt stoppen und wann er ihn überspringen soll. Der Debugger zeichnet auf, wie oft er auf jeden Unterbrechungspunkt stößt. Die Felder in diesem Abschnitt geben dem Debugger vor, beim wievielten Aufeinandertreffen mit einem bestimmten Unterbrechungspunkt er das erste Mal stoppen soll, wie oft er stoppen soll und beim wievielten Mal er nicht mehr stoppen soll.

Mit den folgenden Parametern wird die Häufigkeit für den Unterbrechungspunkt definiert:

  • Von: Geben Sie an, beim wievielten Aufeinandertreffen mit dem Unterbrechungspunkt der Debugger zum ersten Mal stoppen soll. Wenn der Debugger den Unterbrechungspunkt zum Beispiel bei den ersten fünf Aufeinandertreffen überspringen soll, geben Sie "6" ein.
  • Bis: Geben Sie das letzte Aufeinandertreffen mit dem Unterbrechungspunkt an, bei dem der Debugger stoppen soll. Wenn der Unterbrechungspunkt zum Beispiel nach dem 20. Aufeinandertreffen ignoriert werden soll, geben Sie "20" ein. Wenn an dem Unterbrechungspunkt immer gestoppt werden soll, geben Sie "Unendlich" ein.
  • Alle: Geben Sie an, bei jedem wievielten Aufeinandertreffen der Debugger an diesem Unterbrechungspunkt stoppen soll. Wenn er zum Beispiel nur bei jedem vierten Aufeinandertreffen stoppen soll, geben Sie "4" ein.
Dieser Parameter wird von allen Unterbrechungspunkttypen unterstützt.
Ausdruck In dieses Feld können Sie einen Ausdruck eingeben. Die Ausführung des Programms wird bei diesem Unterbrechungspunkt nur dann gestoppt, wenn die in diesem Feld angegebene Bedingung wahr ist. (Jeder Wert ungleich Null wird als wahr betrachtet.)

Wenn Sie zum Beispiel ein Debug für ein C++-Programm durchführen, können Sie den folgenden Ausdruck eingeben:

(i==1) || (j==k) && (k!=5)

Ein Bedingungsausdruck ist jeder gültige Ausdruck in der Sprache der Arbeitsumgebung des Unterbrechungspunkts, der als Zahl ausgewertet werden kann und weder Nebeneffekte hat noch das Aufrufen einer Funktion bewirkt. Für C und C++ bedeutet dies, dass alle Zuordnungsoperatoren und die Inkrement- und Dekrementoperatoren (++ und --) nicht erlaubt sind.

Achtung: Auch wenn es den Anschein hat, dass eine Anwendung an einem Unterbrechungspunkt, dessen Bedingung nicht wahr ist, nicht stoppt, setzt der Debugger die Anwendung vorübergehend aus, während er an der Auswertung der Bedingung arbeitet. In den meisten Fällen ist diese kurze Pause unerheblich. Bei einer Multithread-Anwendung kann dies jedoch dazu führen, dass das Betriebssystem die Reihenfolge ändert, in der die Threads zugeteilt werden.
Anmerkung:
  • Beim Debug von COBOL-für-AIX-Programmen wird nur die Vergleichsbedingung unterstützt, und zwar mit den folgenden Operatoren:

    >, <, =, >=, <=, NOT >, NOT <, NOT =

  • Der linke Operand muss eine Variable und der rechte eine Konstante sein. Während zum Beispiel var1 > 5 gültig ist, sind es 5 < var1 und var1 > var2 nicht.
  • Die Hexadezimalkonstante ist nur mit POINTER-Variablen erlaubt.
  • Nicht numerische und externe Gleitkommavariablen müssen mit einem nicht numerischen Literal verglichen werden.
  • Gezont dezimale Variablen müssen mit einer numerischen Konstanten verglichen werden.
  • Komplexe Bedingungen und Gruppenvergleiche sind nicht erlaubt.
  • Der Vergleich ist locale-basiert, unabhängig von jeder Kompilierungsoption COLLSEQ oder Sortierfolgespezifikation innerhalb des Programms.
  • Beim Debug von PL/I für AIX-Programmen lesen Sie den Abschnitt Unterstützter PL/I-Ausdruck.
Zeile, Eingang und Adresse.

Rückmeldung