我的工作区中有以下tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"label": "Run Locally",
"dependsOn": ["Run Backend", "Run Frontend"],
"dependsOrder": "parallel",
},
{
"label": "Run Frontend",
"type": "shell",
"options": {
"cwd": "${workspaceFolder}/frontend"
},
"runOptions": {
"runOn": "folderOpen"
},
"command": "npm",
"args": ["run", "dev"],
"presentation": {
"panel": "dedicated"
}
},
{
"label": "Run Backend",
"options": {
"cwd": "${workspaceFolder}/backend"
},
"runOptions": {
"runOn": "folderOpen"
},
"command": "python",
"args": ["-m", "flask", "--debug", "--app", "main", "run"],
"presentation": {
"panel": "dedicated"
}
},
]
}
当我打开 vscode 时,它会启动两个终端:一个使用
npm run dev
运行 React 前端,另一个使用 python -m flask --debug --app main run
运行 Flask 应用程序。
我想做的是将 VSCode 调试器附加到 Flask 进程,这样当我创建断点时我可以调试变量,这可能吗?
我发现的所有解决方案都指向使用 launch.json,但如果可能的话,我想将其保留在任务中,因为当我打开 VSCode 时它会自动运行
这是可能的。您可以在下面阅读更多相关内容:
https://code.visualstudio.com/docs/python/debugging#_additional-configurations
只需在
launch.json
文件中创建一个条目,如下所示:
{
"name": "Python Debugger: Attach using Process Id",
"type": "debugpy",
"request": "attach",
"processId": "${command:pickProcess}"
}
每当要求您选择要附加的进程 ID 时,请选择您的 Flask 应用程序的进程 ID。
注意:对于 Linux 用户,可能需要执行额外的步骤:
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope