我有一个脚本,它有效地完成了以下工作:
top_script.py:
os.system("bash_script.sh")
bash_script.sh
python3 child_script.py
child_script.py
# Actual work goes here
在VSCode中,我喜欢集成调试器,但是当我从IDE启动时遵循他们的advice1,我会得到"ECONNREFUSED 127.0.0.1:5678“。
当我从VSCode中的集成终端执行以下操作时,它运行时不会出现错误,但是它不会停止在child_script.py中的断点上。
python3 -m debugpy --listen 5678 top_script.py
如何首先(从IDE或命令行)执行顶级脚本,并在child_script.py中将断点呈现在VSCode中?
发布于 2020-12-17 10:57:02
很简单。可以将配置添加到launch.json文件中,如下所示:
{
"name": "MySubProcess",
"type": "python",
"request": "attach",
"processId": "${command:pickProcess}
}
现在单独启动python进程(通过提示符或无论如何)。这将生成python子进程。您可以在中看到这一点(或者在MacOS活动监视器中,或者在Linux中以类似的方式)。
在VSCode中,单击Debug,(在上面的示例中选择您的子流程配置:"MySubProcess“),然后选择刚刚开始的进程。然后调试器将在子进程代码中的断点处停止。
发布于 2020-05-12 20:59:49
问题是,通过使用os.system()
,调试器不知道您启动了您所关心的另一个Python解释器。您需要做的是附加到第二个过程。细节将根据您想要设置的方式而有所不同,但是您可以将https://code.visualstudio.com/docs/python/debugging#_local-script-debugging作为一个起点。
发布于 2022-01-07 02:08:46
我遵循了RexBarker的建议,但是VSC总是给我一个“超时等待调试服务器连接”的错误。为了找出原因,在下面的配置中启用了“日志到文件”,
{
"name": "MySubProcess",
"type": "python",
"request": "attach",
"processId": "${command:pickProcess}",
"logToFile": true
}
然后,我可以在位于~/.local/share/code-server/extensions/ms-python.python-2021.5.926500501/debugpy.adapter-{pid}.log的VSC主机上的日志文件中找到详细的错误。
它告诉我“gdb”没找到。在我安装了gdb之后,它按预期的方式工作。
https://stackoverflow.com/questions/61702186
复制相似问题