Python-Debugging
Problem
- 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 - Winpdb Python Platform Independent Python Debugger liefert hierbei eine einfache GUI Applikation, um sich mit dem Debugger zu verbinden
Starten des Debuggers
Informationen
- 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.
from ppms.debugging import start_embedded_debugger
def function_to_debug():
# ...
start_embedded_debugger(password='foobar')
# ...
Grafisches debuggen mit Winpdb
Informationen
- Winpdb eignet sich gut, um PLANTA zu debuggen
- 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 EinstellungENABLE_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
Starten des Debuggers
Informationen
- Zuerst muss in PyCharm, dass remote debugging eingerichtet und gestartet werden
- Danach kann in PLANTA über den Menüpunkt Tools -> Python -> Mit PyCharm Debugger verbinden sich mit dem Debugger verbunden werden