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
属性之后,一旦关闭正在调试的任何一个程序,就会将其他程序也一并关闭。