Steuerelemente für den EGL-Debugger

Der EGL-Debugger kann nicht nur in den Sichten 'Unterbrechungspunkte' und 'Variablen', sondern auch über Steuerelemente in den folgenden Bereichen gesteuert werden:

Schaltflächen in der Symbolleiste

Wieder aufnehmen
Führt den Code bis zum nächsten Unterbrechungspunkt oder bis zum Ende der Ausführungseinheit aus. Falls Sie die Debuggervorgabe entsprechend festgelegt haben, stoppt der Debugger bei der ersten Anweisung in der Hauptfunktion (siehe Benutzervorgaben für den EGL-Debugger definieren).
Aussetzen
Der Debugger hält die Ausführung bei der nächsten Gelegenheit an. Diese Schaltfläche ist nur verfügbar, wenn die Ausführung läuft.
Beenden
Beendet das Programm ohne die Ausführung weiterer Anweisungen.
Step-Into
Führt die nächste EGL-Anweisung aus und hält dann die Verarbeitung an.
In der folgenden Liste ist angegeben, welche Aktion stattfindet, wenn Sie den Befehl Step-Into für einen bestimmten Anweisungstyp ausgeben:
call
Die Ausführung wird bei der ersten Anweisung eines aufgerufenen Programms gestoppt, falls das aufgerufene Programm im EGL-Debugger ausgeführt wird. Die Ausführung wird bei der nächsten Anweisung im aktuellen Programm gestoppt, wenn das aufgerufene Programm außerhalb des EGL-Debuggers ausgeführt wird.
Der EGL-Debugger sucht in jedem Projekt der Workbench nach dem empfangenden Programm.
converse
Es wird auf eine Benutzereingabe gewartet. Diese Eingabe bewirkt, dass die Verarbeitung bei der nächsten ausgeführten Anweisung gestoppt wird, die in einer Validatorfunktion enthalten sein kann.
forward
Falls der Code an einen JSF-Handler weiterleitet, wartet der Debugger auf eine Benutzereingabe und stoppt dann bei der nächsten ausgeführten Anweisung, die in einer Validatorfunktion enthalten sein kann. Leitet der Code an ein Programm weiter, stoppt der Debugger bei der ersten Anweisung in diesem Programm.
Funktionsaufruf
Stoppt bei der ersten Anweisung in der Funktion.
show, transfer
Falls Sie die Debuggervorgabe entsprechend festgelegt haben, stoppt der Debugger bei der ersten Anweisung des Programms, das die Steuerung erhält (siehe Benutzervorgaben für den EGL-Debugger definieren). Das Zielprogramm ist ein EGL-Quellcode, der im EGL-Debugger ausgeführt wird, jedoch nicht von EGL generiert wurde.
Nach einer Anweisung show oder transfer wechselt der EGL-Debugger zum Builddeskriptor für das neue Programm oder fordert vom Benutzer die Angabe eines neuen Builddeskriptors an, falls kein Builddeskriptor verwendet wird. Für das neue Programm können andere Eigenschaften als für das zuvor ausgeführte Programm definiert sein.
Step-Over
Führt die nächste EGL-Anweisung aus und hält die Verarbeitung an, stoppt jedoch nicht innerhalb von Funktionen, die von der Anweisung aufgerufen werden.
In der folgenden Liste ist angegeben, welche Aktion stattfindet, wenn Sie den Befehl Step-Over für einen bestimmten Anweisungstyp ausgeben:
converse
Es wird auf eine Benutzereingabe gewartet. Anschließend werden etwaige Validierungsfunktionen übersprungen (sofern kein Unterbrechungspunkt wirksam ist). Es wird bei der Anweisung gestoppt, die auf die Anweisung converse folgt.
forward
Falls der Code an einen JSF-Handler weiterleitet, wartet der Debugger auf eine Benutzereingabe und stoppt dann bei der nächsten ausgeführten Anweisung, jedoch nicht in einer Validatorfunktion (sofern kein Unterbrechungspunkt wirksam ist).
Leitet der Code an ein Programm weiter, stoppt der Debugger bei der ersten Anweisung in diesem Programm.
show, transfer
Falls Sie die Debuggervorgabe entsprechend festgelegt haben, stoppt der Debugger bei der ersten Anweisung des Programms, das die Steuerung erhält (siehe Benutzervorgaben für den EGL-Debugger definieren). Das Zielprogramm ist ein EGL-Quellcode, der im EGL-Debugger ausgeführt wird, jedoch nicht von EGL generiert wurde.
Nach einer Anweisung show oder transfer wechselt der EGL-Debugger zum Builddeskriptor für das neue Programm oder fordert vom Benutzer die Angabe eines neuen Builddeskriptors an, falls kein Builddeskriptor verwendet wird. Für das neue Programm können andere Eigenschaften als für das zuvor ausgeführte Programm definiert sein.
Step-Return
Führt die Anweisungen aus, die für die Rückkehr zu einem aufrufenden Programm oder einer aufrufenden Funktion erforderlich sind, und hält dann bei der Anweisung an, die in diesem Programm bzw. in dieser Funktion die Steuerung erhält.
Der Befehl Step-Return in einer Validatorfunktion ist eine Ausnahme. In diesem Fall entspricht das Verhalten dem Befehl Step-Into, was primär bedeutet, dass der EGL-Debugger die nächste Anweisung ausführt und dann die Verarbeitung anhält.
Rückkehr zu Frame
Wählen Sie einen in der Sicht Debug im Stack angezeigten Frame aus und klicken Sie auf die Schaltfläche Rückkehr zu Frame, um alle Frames über dem ausgewählten Frame aus dem Stack zu entfernen. Der ausgewählte Frame wird an seiner ersten Anweisung neu positioniert. Hiermit werden keine Aktionen rückgängig gemacht, die in den entfernten oder neu positionierten Frames stattgefunden haben. Falls Sie die Frames bis zum aktuellen Frame entfernen, kehrt das Programm zur ersten Anweisung des Frames zurück. Ein Frame stellt eine Funktion, eine globale Variable, eine Initialisierungsoperatoranweisung oder eine Anweisung 'openUI' dar. Ein Stack ist eine Liste der aktuellen Frames.

Falls Sie den Befehl Step-Into oder Step-Over für eine Anweisung ausgeben, bei der es sich um die letzte in der Funktion ausgeführte Anweisung handelt (und die keine Anweisung return, exit program, exit rununit oder exit stack ist), wird die Verarbeitung in der Funktion selbst angehalten, damit Sie die lokalen Variablen der Funktion prüfen können. Zum Fortsetzen der Debugsitzung müssen Sie in diesem Fall einen weiteren Befehl ausgeben.

Die Schaltfläche Step-Filter verwenden ist beim Debug von EGL wirkungslos.

Kontextmenüoptionen

Ausführen bis Zeile
Führt alle Anweisungen bis zur Anweisung in einer bestimmten Zeile aus, jedoch nicht inklusive dieser Anweisung.
Gehe zu Zeile
Wenn Sie mit der rechten Maustaste auf den grauen Rand links neben einer Codezeile und anschließend auf diese Option klicken, wird der Debugger bei dieser Zeile neu positioniert. Sie können nur zu einer Zeile in einer Funktion springen, die zum gegenwärtig aktiven Stack gehört, also zur gegenwärtig ausgeführten Funktion oder zu einer Funktion, die die aktuelle Funktion aufgerufen hat. Beim Debug für Rich UI ist dieser Befehl nicht verfügbar.
Unterbrechungspunkt hinzufügen
Gibt eine Zeile an, bei der die Verarbeitung angehalten werden soll. Nachdem die Codeausführung angehalten wurde, können Sie Variablenwerte sowie den Status von Dateien und Anzeigen untersuchen. Unterbrechungspunkte werden debugsitzungsübergreifend verwendet, sofern Sie den Unterbrechungspunkt nicht entfernen. Bei einer leeren Zeile oder einer Kommentarzeile kann kein Unterbrechungspunkt gesetzt werden.
Unterbrechungspunkt inaktivieren
Inaktiviert einen Unterbrechungspunkt, jedoch ohne ihn zu entfernen.
Unterbrechungspunkt aktivieren
Aktiviert einen zuvor inaktivierten Unterbrechungspunkt.
Unterbrechungspunkt entfernen
Löscht den Unterbrechungspunkt, damit die Verarbeitung bei der Zeile nicht mehr automatisch anhält.
Alle Unterbrechungspunkte entfernen
Löscht alle Unterbrechungspunkte.
Der EGL-Debugger ignoriert die folgenden EGL-Systemfunktionen:
  • sysLib.audit()
  • sysLib.purge()
  • vgLib.startTransaction()

Sie können bei diesen Anweisungen zwar einen Unterbrechungspunkt hinzufügen, aber beispielsweise wird ein Befehl Step-Into ohne weitere Folgen lediglich bis zur nachfolgenden Anweisung fortgesetzt.

Weitere Steuerelemente

In den Sichten 'Variablen' und 'Unterbrechungspunkte' sind zusätzliche Optionen verfügbar. Weitere Informationen enthalten die Abschnitte 'Variablen im EGL-Debugger anzeigen' und 'Unterbrechungspunkte im EGL-Debugger verwenden'.

Kompatibilität

Tabelle 1. Hinweise zur Kompatibilität von Debuggersteuerelementen
Plattform Problem
Webtransaktionen Eine Validatorfunktion kann nicht entfernt werden. Enthält der Stack beispielsweise eine Anweisung converse, auf die eine Validatorfunktion und anschließend eine von der Validatorfunktion aufgerufene Funktion folgen, können Sie die Validatorfunktion entfernen, nicht jedoch die Anweisung converse.

Feedback