vscode 调试器 - 无法停止或查看调用 satck 中的进程 - Flask

问题描述 投票:0回答:2

我习惯使用 vscode 调试器来调试多处理应用程序。当我启动进程时,我总是可以在调用堆栈中看到它们,如下所示:

我可以在代码中放置断点,当断点到达时,进程就会停止。

由于某种原因,该功能不再对我有用(也许是因为最新的更新?)。 现在我只能看到调用堆栈是否像这样:

我可以用断点停止主线程,但现在我无法进入正在运行的进程。

这是我的 launch.json 文件

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        },
        {
            "name": "Python: Flask",
            "type": "python",
            "request": "launch",
            "module": "flask",
            "env": {
                "FLASK_APP": "Source/app.py",
                "FLASK_ENV": "development",
                "FLASK_DEBUG": "0"
            },
            // "justMyCode": false,
            "args": [
                "run",
                "--no-debugger",
                "--no-reload"
            ],
            "jinja": true
        }
    ]
}

我启动进程的方式没有改变(多处理python lib),代码也没有改变,我返回了几次提交(当我知道我确实设法进入一个进程时),它也不起作用.

我可以看到这些进程正在正常工作,但不能让它们在任何断点处停止。

我读过,最新更新确实添加了一些有关调试器配置的内容,但似乎并不相关。

python flask visual-studio-code
2个回答
0
投票

您将

--no-reload
传递给 Flask - 这会禁用自动重新加载,这首先需要使用两个进程。所以它只是调试一个进程。


0
投票

我现在也遇到同样的行为。

过去的情况和应该是这样的:

其显示方式如下:

VSCode 对所有配置类型都执行此操作:debugpy、node。

有趣的部分是,当我启动任何其他进程(甚至与另一个实例/进程相同的配置)时,两个进程都会立即出现,并且不会消失,直到我停止所有进程。如果我再次开始运行 0 个进程,我会始终得到相同的行为。如果我显示了 1 个进程并从弹出菜单中选择“重新启动”,它将重新启动并且不会再次显示任何进程。我尝试重新加载 VSCode,但这并没有改变任何事情。

例如,这是我正在运行的 launch.json 配置:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "dcss webtiles server:run:local",
      "request": "launch",
      "type": "debugpy",
      "cwd": "${workspaceFolder}/docker-crawl/src/crawl-ref/source",
      "program": "./webserver/server.py",
      "console": "internalConsole",
    },
  ]
}
© www.soinside.com 2019 - 2024. All rights reserved.