pydev调试器用作python模块

时间:2017-04-09 08:41:28

标签: python debugging pydev

pydev debuggerpydevpycharm使用的 python调试器。它看起来比pdb强大得多。它的代码可用(https://github.com/fabioz/PyDev.Debugger),并且很容易通过pip安装。包名称为pydevd

但是,没有关于如何从python代码(pydev或pycharm IDE之外)使用它的信息。文档完全没有。

有谁知道如何使用它?我想做那样的事情:

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

1 个答案:

答案 0 :(得分:1)

嗯,我同意文档缺乏,但主要是你在IDE中使用它,而不是以编程方式使用它。

您应该以编程方式使用的唯一公共API pydevd.settrace(),这是一个API,它将在它以编程方式放置的位置设置断点(意味着调试器将在该行停止 - 相同的效果拥有pdb.set_trace() - 并且如果它仍然没有连接(例如:http://www.pydev.org/manual_adv_remote_debugger.html - 代码:https://github.com/fabioz/PyDev.Debugger/blob/a4a58179dab9f9fb93559066f0ef22ac59c59e04/pydevd.py#L1065),那么相同的API也会连接到前端以进行远程调试。

现在,目前唯一的前端是PyDev和PyCharm,没有前端为您提供命令行...整个通信通过套接字连接到调试器后端的线程(再次,那里不是真正的文档,但代码应该易于阅读套接字接受的内容,协议非常简单:https://github.com/fabioz/PyDev.Debugger/blob/a4a58179dab9f9fb93559066f0ef22ac59c59e04/_pydevd_bundle/pydevd_process_net_command.py)。

在纯python代码中有单元测试,它可以运用它(即:连接到调试器,并通过套接字发出命令 - https://github.com/fabioz/PyDev.Debugger/blob/a4a58179dab9f9fb93559066f0ef22ac59c59e04/tests_python/debugger_unittest.py),因此,它不应该那么难实际上它是一个命令行前端 - 它只是到目前为止还没有人对它感兴趣,但是如果有人想向PyDev.Debugger贡献一个命令行前端,它就是欢迎;)