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')
    # ...
PY

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 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

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