【问题标题】:(How) can I use pydevd on the command line similar to pdb?(如何)我可以在类似于 pdb 的命令行上使用 pydevd 吗?
【发布时间】:2019-03-13 13:01:39
【问题描述】:

我知道我可以像这样在命令行上调试Dummy.py

python -m pdb Dummy.py

现在,我正在尝试了解 Visual Studio Code 中调试控制台的一些行为,我相信我可能会追查到 pydevd 的行为。 (基本上,调试控制台reports incorrect error messages 用于a = no_existing_function() 等行。)

所以我想做的是以与上面的pdb 类似的方式使用pydevd,但我没有做到这一点。我已经设法启动了一个“服务器”,

import pydevconsole
pydevconsole.start_server('localhost', 5678, 1234)

并启动一个“客户端”并连接到上面的服务器:

import pydevd
from _pydevd_bundle import pydevd_comm

print(pydevd_comm.start_client('localhost', 5678))
pydevd.settrace()

但是,我不确定下一步该做什么。在我看来,pydevd 只是一个中间人,期望其他东西连接到我选择的端口1234。但它实际上在期待什么?我可以用 telnet 之类的东西连接,或者完全短路这个连接以获得真正交互式的控制台,我可以在其中键入要在 Dummy.py 范围内评估的命令吗?

【问题讨论】:

标签: python pydev pdb


【解决方案1】:

如果您使用的是 Visual Studio 代码,则希望使用 ptvsd 而不是 pydevdptvsd 包装 pydevd 以与 Visual Studio 代码一起使用)。

有关详细信息,请参阅:https://code.visualstudio.com/docs/python/debugging(您必须启动远程调试器,然后使用启动配置连接到它)。

【讨论】:

  • 是的,我知道这一点。这对我没有帮助的原因是当我注意到 VS Code 中的错误时,几乎不可能将其归因于 VS Code、PVSC 扩展、调试引擎的 PTVSD 包装器或 PyDev 调试引擎。如果我能够重现 PyDev 中的错误,我将确定到哪里去调查和/或报告错误。
  • 如果您在使用 vscode 时在调试器中遇到错误,您应该向ptvsd (github.com/Microsoft/ptvsd) 报告——如果不是来自那里,则应酌情重定向。
猜你喜欢
  • 1970-01-01
  • 2018-07-10
  • 2011-01-23
  • 2013-07-14
  • 2010-11-22
  • 2021-04-11
  • 1970-01-01
  • 2011-11-23
  • 1970-01-01
相关资源
最近更新 更多