Python --inspect-brk 模拟

Python --inspect-brk analogue

Node.js 中有一个 --inspect-brk CLI 开关可用以暂停脚本执行,直到调试器附加到进程。有没有类似的方法可以告诉 Python 解释器挂起,直到我附加调试器?

我知道 PDB 的“导入 pdb;pdb.set_trace()”选项。关键是我想以一种非 hacky 的方式利用 VSCode 内置调试​​器。到目前为止,我已经能够使用“-m pdb”选项 运行 Python 脚本,使用 VSCode 通过 PID 附加到它,使用 VSCode 暂停脚本执行在我将“next”键入 pdb 之前调试器(此序列以某种方式拦截了对 VSCode 调试器的控制)并且我进入了。我知道 运行 宁 VSCode 的选项通过配置 launch.json 文件直接调试器,但它不适合我 运行 Python 脚本作为其他 shell 脚本的一部分的情况。前面提到的 Node.js 开关在这种情况下非常有用,我想知道我是否可以用 Python.

做任何类似的事情

我知道这有点死机,但要回答你最初的问题“Python 的节点 --inspect-brk 的模拟”是否定的。 python 解释器并未内置该功能。我 google 几天前的搜索让我找到了你未回答的问题,所以我想我会回来分享我的工作。

我找到的最接近的经验来自 VS Code 文档的 Command Line Debugging 部分。我不会详细介绍您可以使用的各种命令选项,但我会包括我发布时的内容,以防 link 将来失效。

假设:

  • 您正在与 python3
  • 合作
  • pip3 install --user debugpy 在某个时候 运行

VS 代码启动配置

{
  "name": "Attach To DebugPy (9339)",
  "type": "python",
  "request": "attach",
  "connect": {
    "port": 9339
  }
}

工作流程:

  1. python3 -m debugpy --listen 9339 --wait-for-client ./main.py
  2. 在 VS Code 中单击调试器“附加”目标