VSCode 工作区的.vscode/launch.json文件中存储着调试和运行的配置。
launch.json的基本结构如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "foo",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/bar.py"
}
// ...
]
}
首先有一个version字段指定配置文件的版本,然后在configurations数组中指定调试或运行的参数。
每一个启动项都必须有这 4 个参数:
name:显示在 VSCode 界面上的启动项名称。type:要使用的 debugger。debugger 都是由插件提供的。request:只能是launch或者attach。launch表示调试时由 VSCode 启动一个新的进程,attach则表示让 debugger 连接到现有的进程。一般都是选择launch。program:程序的入口文件。cwd参数可以指定运行脚本时的工作目录,默认值是${workspaceFolder}。
justMyCode参数的默认值是true,表示不调试不在当前工作区内的代码(比如标准库、第三方库),建议设置为false。
在 VSCode 里,调试和运行是共享配置的。按下 F5 会开始调试当前的选中项,按下 Ctrl+F5 则会以运行模式(不启动 debugger)启动当前的选中项。
假设有server.py和client.py两个程序需要同时启动,只需要这么编写.vscode/launch.json即可:
{
"version": "0.2.0",
"configurations": [
{
"name": "Client",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/client.py"
},
{
"name": "Server",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/server.py"
}
],
"compounds": [
{
"name": "Server/Client",
"configurations": ["Server", "Client"],
"stopAll": true
}
]
}
接着运行名为Server/Client的启动项即可同时启动Server和Client两个调试任务。启用stopAll属性之后,一旦关闭正在调试的任何一个程序,就会将其他程序也一并关闭。