Visual Studio Code 调试功能使用和设置说明
关注 1800
如何在 VSCode 中配置 launch.json 进行代码的运行和调试视频演示 YouTube如何在 VSCode 中配置 launch.json 进行代码的运行和调试视频演示 Bilibili
Visual Studio Code 调试功能
Visual Studio Code(VSCode)的调试功能为测试代码提供了极大的便利。本文将介绍如何在 VSCode 中运行调试代码,并解释部分高级设置。
在 Visual Studio Code 中运行调试代码
对于某些语言(如 JavaScript、TypeScript),VSCode 已内置了它们的运行调试功能,无需安装其它扩展。
其它语言(如 Python、C++),通常需要安装启用对应的扩展(例如,调试 Python 需要安装扩展 Python Debugger)。
要简单的启动代码的调试,你可以打开一个代码文件。然后,在运行和调试面板中点击运行和调试按钮。如果 VSCode 能够确定采用何种配置,那么运行调试会直接开始。否则,会弹出面板让你选择所采用的配置项,这些配置项通常由 VSCode 自身和所安装的扩展提供。
例如,打开并运行调试一个py脚本文件,可能会看到配置项 Python 文件,选择它即可使用 Python 解释器运行当前的py文件。
当然,以上的这种方式适用于快速测试单个文件。如果遇到稍微复杂一些的场景(如传递参数、设置环境变量、执行前后任务),那么就需要进行自定义配置。
Visual Studio Code 中的 launch.json 文件
launch.json是 VSCode 用于存储运行调试配置项的文件,它位于项目工作区的.vscode文件夹中。通过它,你可以创建并管理自定义的运行调试配置。
如何创建运行调试配置项?
在运行和调试面板中点击用于创建launch.json文件的链接,或使用菜单项运行 | 添加配置…,或在命令面板中执行命令Debug: Add Configuration…。
VSCode 将根据你的选择,来创建新的运行调试配置项。
launch.json 文本会导致运行和调试面板发生变化
一旦你在工作区创建了launch.json文件,运行和调试面板将发生一些变化。比如,其中的运行和调试按钮可能不再显示。
Visual Studio Code 运行调试配置项
对于一个运行调试配置项,通常拥有以下重要的设置(属性)。
- name 属性
name属性是配置项的名称,可显示在运行和调试面板的下拉列表框中。- type 属性
type属性表示配置项的类型。相关语言扩展或 VSCode 内置功能将根据该属性来识别配置项。比如,扩展 Python Debugger 可识别type属性为debugpy的配置项。- request 属性
request属性为请求类型。其有效值launch表示启动新程序进行调试,attach表示附加到已运行的程序进行调试。- program 属性
program属性为要调试的可执行文件或脚本的路径。可以是绝对路径或相对路径(一般情况下,相对路径相对于 VSCode 工作区目录)。
下面的示例中,文件launch.json包含一个用于运行调试当前 Python 文件的配置项。其中program属性包含了表示当前文件路径的 VSCode 变量file。
{
"version": "0.2.0",
"configurations": [
{
"name": "Python 运行当前文件",
"type": "debugpy",
"request": "launch",
"program": "${file}",
}
]
}为 Visual Studio Code 运行调试添加命令行参数
配置项的args属性是一个字符串数组,可为运行调试添加命令行参数,参数的名称和值可以合并为一个字符串,或分别作为两个字符串。
这里,修改之前的配置项,添加命令行参数--name和--age,它们的值分别为Jack和10。
Python 脚本文件的d.py,显示了所有的命令行参数。
{
// …
"args": ["--name Jack","--age","10"],
}import sys
# 显示参数
print(sys.argv)['…\d.py', '--name Jack', '--age', '10']为 Visual Studio Code 运行调试设置环境变量
如何在 VSCode 中为运行调试设置环境变量视频演示 YouTube如何在 VSCode 中为运行调试设置环境变量视频演示 Bilibili
当程序的行为依赖于环境变量时,你可以在launch.json中为相应的运行调试配置设置环境变量。这相对于直接修改操作系统中的环境变量更加灵活。
要设置环境变量,可以在配置项中添加env属性。该属性是一个对象,需要设置的环境变量作为对象的属性出现,环境变量的名称作为属性的名称,环境变量的值作为属性的值。
下面,我们为运行调试添加了环境变量MYNAME,其值为Tom。
为脚本文件d.py添加代码,显示环境变量MYNAME。
{
// …
"env": {
"MYNAME": "Tom",
},
}# …
import os
# 显示环境变量
print(os.environ.get('MYNAME'))Tom为 Visual Studio Code 运行调试设置当前工作目录
配置项的cwd属性,表示了运行调试时终端的当前工作目录。
改变 cwd 属性的可能后果
通过cwd属性修改当前工作目录后,如果program属性采用了相对路径,那么 VSCode 可能无法找到需要调试的目标。
下面,我们更改了当前工作目录,并在代码中显示了它。
{
// …
"cwd": "z:\\",
}# …
# 显示当前工作目录
print(os.getcwd())Z:\在 Visual Studio Code 运行调试前后执行任务
如果你需要在运行调试之前或之后执行一些额外的操作(比如,创建或删除某个文件夹),那么可以为配置添加属性preLaunchTask或postDebugTask即可,属性的值是已存在的任务的名称。
在下面的示例中,运行调试开始之前将执行任务begin,运行调试结束之后将执行任务end。
{
// …
"preLaunchTask": "begin",
"postDebugTask": "end",
}源码
launch.json·codebeatme/vscode·GitHub
d.py·codebeatme/vscode·GitHub
讲解视频
如何在 VSCode 中配置 launch.json 进行代码的运行和调试·YouTube如何在 VSCode 中配置 launch.json 进行代码的运行和调试·Bilibili
如何在 VSCode 中为运行调试设置环境变量·YouTube如何在 VSCode 中为运行调试设置环境变量·Bilibili