调试时调用堆栈为空 Python

Call Stack empty when debugging Python

我正在 Python 的一个多线程项目中工作,使用 VSCode 和 Python 扩展。 一切正常,直到突然之间,我没有更改任何设置)它停止在调用堆栈中显示 运行 进程和线程。调用堆栈现在是空的,直到它在断点处停止。

这仅适用于 Python。对于C++,例如,它可以工作,如下图所示:

以下是我的配置文件:

settings.json:

{
    "python.pythonPath": "C:\Users\tiago\AppData\Local\Programs\Python\Python38\python.exe",
    "python.linting.pylintEnabled": false,
    "python.linting.enabled": true,
    "python.linting.pylamaEnabled": false,
    "python.linting.flake8Enabled": true
}

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": "externalTerminal"
        }
    ]
}

发生这种情况是因为我将“GEVENT_SUPPORT”环境变量设置为 True,并且 as @fabioz said, "在 gevent 模式下,调试器期望 gevent 的线程模块是 monkey-patched,因此它不会跟踪那些(因为在 gevent 模式下,你只需要 1 个主线程)。"