Python Debugging
Informationen
Remote-Debugging
- Bei server- und clientbasierten Anwendungen ist es oftmals hilfreich, ein Debugging von einem anderen Ort aus durchführen zu können
Vorbereitungen
Informationen
- Für den Debug-Server muss eine aktuelle Version von Eclipse mit pydev installiert sein.
- Anwendungsseitig wird das Python-Verzeichnis
py/
des PLANTA-Servers benötigt, welches eine größtenteils vorbereitete Version des =pysrc/=-Verzeichnisses enthält und insoweit geändert werden muss, dass es die Lokation der Debugging-Umgebung wiederspiegelt.
Vorgehensweise
Mapping von Quellcodepfaden zwischen Eclipse und dem in den PLANTA Server eingebetteten Python-Interpreter
- Die Datei
paths.py
im Verzeichnis pysrc/
auf Ihrem Gerät muss geändert werden.
- Die Variable
PATHS_FROM_ECLIPSE_TO_PYTHON
zum Debug-Client und -Server.
- Da der Server sein eigenes Arbeitsverzeichnis kennt, sind die durch
os.path.abspath()
bestimmten Werte korrekt und es muss lediglich der Pfad zu Ihrem lokalen PLANTA-Server-Python-Code-Verzeichnis und das OLE-Verzeichnis des Clients, den Sie verwenden möchten, angepasst werden (das Arbeitsverzeichnis Ihres Testsystem-Clients mit angehängtem =\Ole=-Unterverzeichnis).
- Die Variable
DEBUG_CLIENT_SERVER_TRANSLATION
muss in pydevd_file_utils.py
ebenfalls auf True
gesetzt werden, was in der über TFS verfügbaren Version bereits der Fall sein sollte.
Aktivieren von pydevd über
planta_server.conf
- Um den Debugger zu aktivieren, müssen Sie sowohl
config/planta_server.conf
im Serververzeichnis Ihres Testsystems als auch die relevanten Parameter anpassen.
Parameter |
Art |
WERT |
DEBUG_PYTHON |
boolean |
1 |
DEBUG_PYTHON_HOST |
string |
host Verwendung von Eclipse mit PyDev |
DEBUG_PYTHON_PORT |
number |
same wie im Remote-Debug-Server von PyDev konfiguriert, bitte wählen Sie einen beliebigen Wert aus und verwenden Sie nicht den Standardwert 5678 |
- Der Port des Python-Debug-Servers kann in Eclipse unter Verwendung von Window Preferences PyDev Debug Port für Remote-Debugger konfiguriert werden.
Mit Debug Host verbinden
- In Eclipse kann eine Debug-Ansicht geöffnet und der Server gestartet werden.
- Der Debug-Server muss bereits laufen bevor die Funktion
planta_py_debug.debug_break()
im Python-Code zum ersten Mal aufgerufen wird.
- Den PLANTA-Server sowie den passenden PLANTA-Client starten sobald der Server Verbindungen akzeptiert.
- Die Anwendung kann nun debuggt werden.
Breakpunkt setzen
-
planta_py_debug
und py_debug
from planta_py_debug
müssen importiert und die Debug-Flag über py_debug.set_debug_flag(True)
freigeschaltet werden.
- Der Aufruf von
planta_py_debug.debug_break()
in Python stellt eine Verbindung zu Eclipse her und ermöglicht das zukünftige Setzen weiterer Breakpunkte.
- Jeder Aufruf von
planta_py_debug.debug_break()
verhält sich wie ein programmierter Breakpunkt, weshalb hierbei Vorsicht geboten ist.
- Derzeitige Einschränkung: Seit DB-Resident existieren Python-Objekte serverseitig nicht mehr als tatsächliche Dateien; PyDevd zeigt an, dass Breakpoints nicht gesetzt werden können, obwohl das Setzen einwandfrei funktioniert.
- Beim Verlassen eines Python-Kontextes trennt sich die Python-Laufzeit unter Debug vom Debug-Server. Um zum Remote-Debugging zurückzukehren muss
planta_py_debug.debug_break()
erneut aufgerufen werden.