Durch die komplexen Möglichkeiten, Makros und Wertebereiche zu definieren, entstehen vielfältige Fehlerquellen. Entstandene Fehler können nur mit hohem Aufwand durch reines Durchdenken oder Dialogmeldungen identifiziert werden.
Ziele
Ein Debugger gibt dem Fehlersuchenden die Möglichkeit, den Programmcode während der Ausführung Zeile für Zeile durchzugehen oder an bestimmten Punkten anzuhalten, um die Werte, die gerade gesetzt sind, zu überprüfen und Fehler im Programmverlauf zu finden.
Debuggen mit rpdb2 / Winpdb
Informationen
Mit Hilfe der rpdb2 Bibliothek lässt sich der Python-Interpreter innerhalb von PLANTA von außerhalb des Applikationsservers debuggen
Der Debugger kann in jedem Python-Programm verwendet werden, also in
Python-Wertebereichen,
Python-Makros und
in externen Python-Skripten.
Hierzu kann auf die Debugger API zurückgegriffen werden oder der Debugger über den Menüpunkt Tools -> Python -> Winpdb Debugger starten gestartet werden.
Hat man den Debugger wie oben beschrieben gestartet, muss man sich mit Winpdb verbinden:
Die Option Attach in dem Menü File auswählen
Das Passwort eingeben
Die Adresse des Rechners angeben auf dem das Skript läuft
Debugger Instanz auswählen und verbinden
Nun erscheint eine Oberfläche, auf der im rechten oberen Fensterbereich der Quelltext zu sehen ist, an dem unterbrochen wurde
Mit Hilfe von Funktionstasten kann das Programm durchlaufen werden, hierzu befinden sich Informationen in dem Menüeintrag Controls.
Das Setzen von Unterbrechungspunkten (Breakpoints) wird mit der Funktionstaste F9 durchgeführt.
Über File -> Open Source kann der Pfad zu einer Python-Datei im Server-Verzeichnis angegeben werden um darin Breakpoints zu setzen
Tip:
Um das ständige Neuladen der GUI zu unterbinden, müssen die Python Service Functions in der planta_server.conf deaktiviert werden, indem die Einstellung ENABLE_PY_SERVICE_FUNCTIONS auf 0 gesetzt wird
Debuggen mit PyCharm
Informationen
"PyCharm Professional" beinhaltet einen remote Debugger, der ebenfalls genutzt werden kann, um PLANTA zu debuggen