VSCode调试器附加到本地进程

Jun*_*ark 9 python attach-to-process visual-studio-code

PyCharm的一大特色是它允许其调试器附加到本地(和IDE外部)运行的python进程。

当我尝试使用VSCode在Python中工作时,我正在努力配置launch.json以模拟PyCharm附加到本地进程的功能。

{
    "name": "Python: Attach",
    "type": "python",
    "request": "attach",
    "localRoot": "${workspaceFolder}",
    "remoteRoot": "${workspaceFolder}",
    "port": 8001,
    "secret": "my_secret",
    "host": "localhost"
},
Run Code Online (Sandbox Code Playgroud)

当我选择Python:调试器的附加选项时,默认情况下会创建此配置,但我确信这是用于远程调试(带有端口和全部),并且大多数Google搜索结果都只是在谈论使用VSCode进行Python的远程调试。

是否有人成功将一个或两个本地调试器附加到在本地运行的多个python进程?

Bre*_*non 8

当前不支持本地附加,但是正在使用。

  • Github问题跟踪此:https://github.com/Microsoft/vscode-python/issues/1078 (3认同)

小智 8

自从上一个答案发布以来,VSCode 似乎已经添加了此功能。

在“基本调试”下的文档中,他们解释了这个过程:

开始调试 Python 文件的最简单方法是使用运行视图并单击运行和调试按钮。如果之前未设置任何配置,您将看到调试选项列表。选择适当的选项以快速开始调试您的代码。

两个常用选项是使用 Python 文件配置运行当前打开的 Python 文件或使用使用进程 ID 连接配置将调试器附加到已运行的进程。

因此,在您的情况下,您可以选择左侧的“运行”选项卡,然后选择“运行和调试”。系统将提示您“选择调试配置”。由于您正在尝试附加到现有/已经运行的脚本,请选择“使用进程 ID 附加”。然后选择要附加到的 Python 线程。

我刚刚在我的机器上尝试了这个(VS Code 版本 1.45.0 和 Python 扩展版本 2020.4.76186)并且能够附加到正在运行的进程。