2017-04-09 6 views
0

pydev debugger ist ein Python-Debugger von pydev und pycharm verwendet. Es scheint viel mächtiger als pdb. Sein Code ist verfügbar (https://github.com/fabioz/PyDev.Debugger), und es ist einfach, über Pip zu installieren. Der Paketname lautet pydevd.pydev Debugger Verwendung als Python-Modul

Es gibt jedoch keine Informationen darüber, wie man es aus Python-Code (außerhalb von Pydev oder pycharm IDE) verwenden kann. Die Dokumentation fehlt komplett.

Kann jemand es benutzen? Ich möchte so etwas tun:

import pydevd 

pdd = pydevd.debug("python myscript.py") 

pdd.set_break_point(file="myscript.py", lineno=12) 
pdd.start() 
pdd.read_variable("a") 
pdd.continue() 

Antwort

1

gut, ich bin einverstanden, dass die Dokumente fehlen, aber die Idee ist vor allem, dass man es in der IDE verwenden würde, nicht programmatisch.

Die einzige öffentliche API sollten Sie programmaticallyis pydevd.settrace() zu verwenden, die die API, die an der Stelle, ist ein Breakpoint-Setup es programmatisch setzen ist (zu dieser Linie der Debugger Bedeutung stoppen - die gleiche Wirkung von pdb.set_trace() mit - und dem gleiche API wird auch für Remote-Debugging an das Frontend angeschlossen werden, wenn es nach wie vor ist nicht angeschlossen. (dh: http://www.pydev.org/manual_adv_remote_debugger.html - Code: https://github.com/fabioz/PyDev.Debugger/blob/a4a58179dab9f9fb93559066f0ef22ac59c59e04/pydevd.py#L1065)

nun derzeit die einzigen Frontends sind PyDev und PyCharm, gibt es kein Frontend, dass Sie einen Befehl gibt line ... die gesamte Kommunikation geschieht durch Verbinden mit einem Thread im Debugger-Backend über einen Socket (auch hier gibt es keine echten Dokumente, aber der Code sollte leicht zu lesen sein, was der Socket akzeptiert und Das Protokoll ist ziemlich einfach: https://github.com/fabioz/PyDev.Debugger/blob/a4a58179dab9f9fb93559066f0ef22ac59c59e04/_pydevd_bundle/pydevd_process_net_command.py).

Es gibt Unit-Tests in reinem Python-Code, die das ausüben (zB: Verbindung zu einem Debugger, und Befehle über Sockets ausgeben - https://github.com/fabioz/PyDev.Debugger/blob/a4a58179dab9f9fb93559066f0ef22ac59c59e04/tests_python/debugger_unittest.py), also sollte es nicht so schwer sein, einen Befehl zu tun- Line Frontend dazu - es ist nur, dass niemand bis jetzt Interesse daran hatte, aber wenn jemand PyDev.Debugger ein Kommandozeilen-Frontend hinzufügen möchte, wäre es willkommen;)

+0

Danke die letzte Datei ist sehr nützlich. Und vielen Dank für die Pflege dieser Bibliothek. Es ist sehr beeindruckend. – Oli