Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v19.8
Fenster Debugger

Fenster Debugger  


 

 

Der Begriff Debugger kommt von Bug. Ein Bug in einer Methode ist ein Fehler, den Sie beheben wollen. Sie verwenden den Debugger, wenn ein Fehler aufgetreten ist oder Sie die Ausführung Ihrer Methoden überwachen müssen. Der Debugger unterstützt Sie bei der Fehlersuche, Sie können damit Ihre Methoden langsam durchlaufen und den Inhalt überprüfen. Dieser Prozess heißt Schrittmodus.

Der Debugger zeigt Methoden auf folgende Weise an bzw. durchläuft sie im Schrittmodus:

  • Sie klicken im Fenster Syntaxfehler auf die Schaltfläche Schritt
  • Sie benutzen den Befehl TRACE
  • Sie klicken im Fenster Methode ausführen auf die Schaltfläche Schritt.
  • Sie betätigen während der Methodenausführung die Kombination Alt+Umschalttaste+Rechte Maustaste, auf macOS die Kombination Ctrl+Wahl-+Befehlstaste+Mausklick, und dann im PopUp-Menü den Prozess, der im Schrittmodus überprüft werden soll.
  • Sie klicken bei ausgewähltem Prozess im Runtime Explorer auf der Seite Prozess auf die Schaltfläche Schritt.
  • Sie erstellen oder bearbeiten einen Unterbrechungspunkt im Fenster Methodeneditor oder in den Registerkarten Unterbrechung und Unterbrechungspunkt des Runtime Explorer.

Hinweis: Ist die Datenbank mit einem Kennwort versehen, können nur Designer und Benutzer mit Zugriffsberechtigung auf die Struktur den Schrittmodus auf Methoden anwenden.

Das Fenster Debugger (lokal) sieht folgendermaßen aus:

Das Fenster Debugger (remote) sieht folgendermaßen aus:

  

Sie können dieses Fenster bewegen und bei Bedarf die darin enthaltenen Bereiche vergrößern. Ein neues Debugger-Fenster wird mit derselben Konfiguration wie das zuletzt geöffnete Fenster derselben Sitzung angezeigt (Größe und Position des Fensters, Anordnung der Trennungslinien und Inhalt des Bereichs, der die Ausdrücke bewertet.)

Da 4D multitasking-fähig ist, können Sie auch mehrere Prozesse voneinander unabhängig im Schrittmodus durchlaufen. Sie können für jeden Prozess ein Fenster Debugger öffnen.

Das Debugger-Fenster erscheint in der Regel auf dem Rechner, wo der Code ausgeführt wird.

  • Bei einer Einzelplatz-Anwendung erscheint es immer auf dem Rechner, wo die Anwendung läuft.
  • Bei einer Client/Server-Anwendung erscheint es für lokal laufenden Code auf remote 4D und standardmäßig auf dem Server-Rechner für Code, der auf dem Server läuft (z.B. eine Methode mit der Option "auf dem Server ausführen"). Sollte der Server im headless Modus laufen, lässt sich kein Debugger-Fenster auf dem Server anzeigen.

    Sie können jedoch in Client/Server-Anwendungen die Anzeige des Debuggers für Code, der auf dem Server läuft, an ein spezifisches remote 4D delegieren. Das eignet sich besonders für Server-Anwendungen, die headless laufen. Dazu wählen Sie in einem remote 4D, der mit dem Server verbunden ist, im Menü Start den Eintrag Remote Debugger anfügen:


    Sie können auch die Option Remote Debugger beim Starten anfügen wählen, wenn der Debugger für Server Code automatisch auf dem remote 4D laufen soll. 

    Hinweise: 

Am oberen Rand des Fensters Debugger befindet sich eine Steuerleiste mit neun Schaltflächen:

Der Schrittmodus wird angehalten, die Methodenausführung wird fortgesetzt.

Hinweis: Großschreibtaste+F5 oder Großschreibtaste+Klick fasst die Ausführung zusammen. Dadurch werden für den aktuellen Prozess auch alle folgenden Aufrufe von Schritt deaktiviert.
ALT+F5 unter Windows, bzw. Wahl-/Befehlstaste+R auf Macintosh setzt die Ausführung fort.

Die aktuelle Methodenzeile wird ausgeführt (Sie ist mit einem gelben Pfeil, dem Programmzähler, markiert), der Debugger wechselt in die nächste Zeile. Die Schaltfläche Step Over springt nicht in Unterroutinen und Funktionen; sie bleibt auf der Ebene der Methode, die gerade durchlaufen wird. Die Unterroutine wird in einem Stück abgearbeitet, ohne dass der Debugger dies anzeigt.

Bei remote Debugging wird bei einer Methode, die auf dem Server läuft, beim Ausführen der letzten Zeile die übergeordnete Methode aufgerufen. Läuft die übergeordnete Methode auf remote 4D, funktioniert die Schaltfläche auf dieselbe Weise wie die Schaltfläche No Trace.

Beim Ausführen einer Zeile, die eine andere Methode aufruft (Unterroutine oder Funktion), wird diese Methode im Debugger Fenster angezeigt. Sie können nun diese Methode im Schrittmodus durchlaufen. Diese Methode wird im Bereich Aufruffolge des Debugger Fensters zur aktuellen Methode. Wird bei Ausführen einer Methode keine andere Methode aufgerufen, funktioniert diese Schaltfläche wie die Schaltfläche Step Over.

Bei remote Debugging wird bei einer Methode, die auf dem Server läuft, beim Ausführen der letzten Zeile die übergeordnete Methode aufgerufen. Läuft die übergeordnete Methode auf remote 4D, funktioniert die Schaltfläche auf dieselbe Weise wie die Schaltfläche No Trace.

Klicken Sie beim Durchlaufen von Unterroutinen und Funktionen auf diese Schaltfläche, können Sie die gesamte Methode, die gerade im Schrittmodus durchlaufen wird, ausführen und zur aufrufenden Methode zurückkehren. Das Debugger Fenster wird auf die vorherige Methode der Aufrufsfolge zurückgesetzt. Ist die aktuelle Methode die letzte Methode in der Aufrufsfolge, wird das Debugger Fenster geschlossen.

Bei remote Debugging wird bei einer Methode, die auf dem Server läuft, beim Ausführen der letzten Zeile die übergeordnete Methode aufgerufen. Läuft die übergeordnete Methode auf remote 4D, funktioniert die Schaltfläche auf dieselbe Weise wie die Schaltfläche No Trace.

Hinweis: Durchlaufen Sie einen Prozess, der Code ausführt, erscheint sofort das Debugger-Fenster. Durchlaufen Sie dagegen einen Prozess, der läuft, aber keinen Code ausführt (schläft, wartet auf Ereignis...), speichert 4D die Anforderung des Debugger-Fensters. Es erscheint, sobald der Prozess die Code-Ausführung abgeschlossen hat.

Beim Ausführen einer Zeile, die einen neuen Prozess erzeugt (z.B. Aufruf des Befehls New process) öffnet diese Schaltfläche ein neues Debugger Fenster. Darin können Sie die Prozessmethode des neu erzeugten Prozesses im Schrittmodus durchlaufen. Wird bei Ausführen einer Methode kein neuer Prozess erzeugt, funktioniert diese Schaltfläche wie die Schaltfläche Step Over.

Die Methode wird angehalten, Sie kehren zur Stelle vor Ausführung der Methode zurück. Wird eine Formular- oder Objektmethode gestoppt, die als Folge eines Ereignisses ausgeführt wird, kehren Sie zum Formular zurück. Läuft die Methode in der Runtime-Umgebung ab, kehren Sie zur Anwendungsumgebung zurück.

Die Methode wird angehalten, als ob Sie auf Abbrechen geklickt hätten. 4D öffnet den Methodeneditor für die Methode, die bei Anklicken der Schaltfläche Abort and Edit ausgeführt wurde.

Tipp: Verwenden Sie diese Schaltfläche, wenn Sie wissen, welche Änderungen in Ihrem Code erforderlich sind und Sie diese Änderungen für das weitere Testen Ihrer Methoden benötigen. Führen Sie die Änderungen aus und starten Sie erneut die Methode.

Klicken Sie auf die Schaltfläche Edit, wird die aktuelle Ausführung im Unterschied zur Schaltfläche Abort and Edit nicht abgebrochen. Die Methodenausführung pausiert an dieser Stelle. 4D öffnet dann den Methodeneditor für die Methode, die bei Anklicken der Schaltfläche Edit ausgeführt wurde.

Wichtig: Sie können diese Methode ändern; die Änderungen erscheinen jedoch nicht unmittelbar in der Methode, die gerade im Debugger-Fenster durchlaufen wird, sondern erst bei der nächsten Ausführung der Methode. D.h. die Änderungen werden erst berücksichtigt, wenn die Methode abgebrochen oder erfolgreich abgeschlossen und erneut geladen wurde.

Tipp: Verwenden Sie diese Schaltfläche, wenn Sie wissen, welche Änderungen in Ihrem Code erforderlich sind und diese nicht mit dem Rest des auszuführenden Code interferieren.

Tipp: Objektmethoden werden für jedes Ereignis erneut geladen. Durchlaufen Sie eine Objektmethode im Schrittmodus (z.B. als Folge eines Klicks auf eine Schaltfläche), müssen Sie das Formular nicht verlassen. Sie können die Objektmethode bearbeiten, die Änderungen sichern und dann zurückwechseln zum Formular und die Methode erneut testen. Wollen Sie Formularmethoden ändern bzw. im Schrittmodus durchlaufen, müssen Sie das Formular verlassen und erneut öffnen, um das Formular wieder zu laden. Bei extensiver Fehlersuche für ein Formular gibt es einen Trick. Setzen Sie den Code, der im Schrittmodus getestet wird, in eine Projektmethode, die Sie als Unterroutine in einer Formularmethode verwenden. Auf diese Weise können Sie im Formular bleiben, wenn Sie es im Schrittmodus durchlaufen, bearbeiten und erneut testen. Denn die Unterroutine wird jedes Mal erneut geladen, wenn sie von einer Formularmethode aufgerufen wird.

Sichert die aktuelle Konfiguration des Debugger Fensters (Größe und Position des Fensters, Anordnung der Trennungslinien und Inhalt des Bereichs zur Bewertung der Ausdrücke. Diese Einstellungen werden dann bei jedem Öffnen der Datenbank standardmäßig verwendet. Sie werden in der Strukturdatei der Datenbank gespeichert.

Hinweis: Diese Aktion ist im Modus remote Debugging nicht verfügbar (siehe unter Debugging über remote Rechner).

Der Debugger zeigt folgende Information an:

  • Anzeige oben: Name der Methode oder Klasse, Name und Prototyp der Class Function, die gerade im Schrittmodus durchlaufen werden.
  • Anzeige unten in rot: Aktion, welche die Anzeige des Debugger Fensters ausgelöst hat.

Angewendet auf das oben angezeigte Beispielfenster erscheinen folgende Informationen:

  • Die Methode Clients_BuildLogo wird im Schrittmodus durchlaufen.
  • Das Debugger Fenster erscheint, weil es einen Aufruf des Befehls C_DATE festgestellt hat und dieser Befehl ein Überwachungsbefehl ist.

Nachfolgende Liste zeigt die möglichen Gründe für das Erscheinen des Debuggers und der Meldung (Anzeige in rot):

  • Befehl TRACE: Ein Aufrufen von TRACE wurde ausgelöst.
  • Erreichen eines Unterbrechungspunktes: Ein Unterbrechungspunkt wurde gefunden.
  • Benutzerunterbrechung: Sie haben die Tastenkombination ALT+Großschreibtaste+ rechter Klick unter Windows, bzw. ctrl+Wahltaste+Befehl+Klick auf MacOS gedrückt oder in der Designumgebung im Runtime Explorer auf der Seite Prozess auf die Schaltfläche Schritt geklickt.
  • Aufrufen eines Überwachungsbefehls: Name des Befehls: Ein 4D Überwachungsbefehl wurde aufgerufen.
  • Wechseln in einen neuen Prozess: Sie haben auf die Schaltfläche Step Into Process geklickt. Diese Meldung wird vom Debugger Fenster angezeigt, der für den neu erzeugten Prozess geöffnet wurde.

Das Debugger Fenster enthält die bereits beschriebene Steuerfläche sowie vier Bereiche, die Sie in der Größe verändern können:

Die drei ersten Bereiche enthalten hierarchische Listen zum Navigieren und Anzeigen beständiger Debugging Informationen. Der vierte Bereich Source Code zeigt den Source Code der Methode, die im Schrittmodus durchlaufen wird. Jeder Bereich unterstützt Sie bei der Fehlersuche mit spezifischen Informationen. Mit der Maus können Sie das gesamte Debugger Fenster sowie jeden Bereich einzeln vertikal und horizontal vergrößern. Die drei oberen Bereiche sind in zwei Spalten mit Trennungslinie unterteilt, die Sie mit der Maus beliebig verschieben können.



Siehe auch 

Befehle unterbrechen
Bereich Aufruffolge
Bereich individuelle Überprüfung
Bereich Source Code
Bereich Überprüfung
Fenster Syntaxfehler
ON ERR CALL
Tastenkürzel des Debuggers
TRACE
Unterbrechungsliste
Wozu dient ein Debugger?

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Debugging

 
SEITENINHALT 
 
GESCHICHTE 

Geändert: 4D v18 R5

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v19)
4D Programmiersprache ( 4D v19.1)
4D Programmiersprache ( 4D v19.4)
4D Programmiersprache ( 4D v19.5)
4D Programmiersprache ( 4D v19.6)
4D Programmiersprache ( 4D v19.7)
4D Programmiersprache ( 4D v19.8)