VScode的task与launch学习笔记

VSCode任务与launch配置深度解析:简化编译调试流程
本文详细介绍了VSCode中的任务(task)和launch配置,包括如何创建任务、配置参数、预定义变量,以及launch配置用于调试的不同场景,教你利用它们提高开发效率。

VScode的task与launch学习笔记

task部分

task的作用

​ VS Code 中的任务可以配置为运行脚本和启动进程,这样许多现有工具可以在 VS Code 中使用,而无需输入命令行或编写新代码

创建task

​ ctrl+shift+P,搜索task。

​ 创建task的时候有很多模板可供选择,最好使用自定义task,也就是other,虽然需要花时间去了解构建task的知识,但是这样可以完全掌控自己想要的功能。

task参数配置

!!!一定要学会使用下面两个法!!!

  1. CTRL + SPACE:用来显示光标位置处可以使用的属性,或者参数。
  2. 把鼠标放在属性上:显示属性的意义。
//一种task配置,只含有部分属性配置,作为示例

{
  // See https://go.microsoft.com/fwlink/?LinkId=733558
  // for the documentation about the tasks.json format
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run tests",
      "type": "shell",
      "command": "./scripts/test.sh",
      "windows": {
        "command": ".\\scripts\\test.cmd"
      },
      "group": "test",
      "presentation": {
        "reveal": "always",
        "panel": "new"
      }
    }
  ]
}
taks的属性属性的含义
label任务的标签名
type将要执行的认为属性,shell表示命令,process表示进程
command要执行的命令
args命令的参数
group定义任务所属的组,用来归类,多任务执行
presentation定义如何在用户界面处理任务输出
problemMatcher问题匹配器,用来输出警告和错误,例如$go匹配go编译器报告的问题
option覆盖cwd(当前工作目录)、env(环境变量)或shell(默认shell)的默认值
runOption定义任务运行的时间和方式
dependsOn指定任务执行时候依赖于那些其他设置的指令
dependsOrder指定所依赖的任务执行的顺序
windowwindow下的特定属性
LinuxLinux下的特定属性
osxmac下的特定属性
isBackground执行的任务是否保持活动并在后台运行。
promptOnClose当 VS Code 因正在运行的任务而关闭时是否提示用户。
key设定任务快捷键
预定义变量名字预定义变量意义
${workspaceFolder}在 VS Code 中打开的文件夹的路径
${workspaceFolderBasename}在 VS Code 中打开的文件夹的名称,不带任何斜线 (/)
${file}当前打开的文件
${fileWorkspaceFolder}当前打开的文件的工作区文件夹
${relativeFile}当前打开的文件相对于workspaceFolder
${relativeFileDirname}当前打开的文件的目录名workspaceFolder
${fileBasename}当前打开的文件的基本名称
${fileBasenameNoExtension}当前打开的文件的基本名称,没有文件扩展名
${fileDirname}当前打开的文件的目录名
${fileExtname}当前打开的文件的扩展名
${cwd}启动时任务运行器的当前工作目录
${lineNumber}活动文件中当前选定的行号
${selectedText}活动文件中当前选定的文本
${execPath}运行 VS Code 可执行文件的路径
${defaultBuildTask}默认构建任务的名称
${pathSeparator}操作系统用于分隔文件路径中的组件的字符

参考资料

  1. VSCode task.json讲解:https://code.visualstudio.com/docs/editor/tasks#vscode
  2. VSCcde 预定义变量讲解:https://code.visualstudio.com/docs/editor/variables-reference

launch部分

launch的作用

​ launch.json用来保存VSCode调试的配置信息,启动配置中可用的属性因调试器而异。

launch的创建方法

  1. 点击右侧栏的”Run and debug“,然后点击创建launch 文件
  2. F5 选择调试,间接生成launch文件

launch的参数配置(C++的GDB调试配置)

{
    // 一个创建c++(GDB调试器)模板,示例
	// 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": "g++ - 生成和调试活动文件",
			"type": "cppdbg",
			"request": "launch",
			"program": "${fileDirname}/${fileBasenameNoExtension}",
			"args": [],
			"stopAtEntry": false,
			"cwd": "${fileDirname}",
			"environment": [],
			"externalConsole": false,
			"MIMode": "gdb",
			"setupCommands": [
				{
					"description": "为 gdb 启用整齐打印",
					"text": "-enable-pretty-printing",
					"ignoreFailures": true
				}
			],
			"preLaunchTask": "C/C++: g++ 生成活动文件",
			"miDebuggerPath": "/usr/bin/gdb"
		}
	]
}
launch的属性属性的含义
type用于此启动配置的调试器类型
request此启动配置的请求类型,,launch(以调试模式开始)和attach(在运行过程中附加调试)
name显示在调试启动配置下拉列表中的易于阅读的名称。
presentation如何显示调试的信息,使用ordergrouphidden 属性
preLaunchTask要在调试会话开始之前启动任务,请将此属性设置为task.json中指定的任务标签
postDebugTask要在调试会话的最后启动任务,请将此属性设置为task.json中指定的任务标签
internalConsoleOptions此属性控制调试会话期间调试控制台面板的可见性
program启动调试器时要运行的可执行文件或文件
args传递给程序以进行调试的参数
environment环境变量(该值null可用于“取消定义”变量)
envFile带有环境变量的 dotenv 文件的路径
cwd用于查找依赖项和其他文件的当前工作目录
stopAtEntry是否在进入短点前停止
externalConsole是否允许外部中端,不允许的话就是用liunxwindow自己的中端
MIMode所连接的调试器名字
setupCommands执行一个或多个 GDB/LLDB 命令以设置底层调试器。
miDebuggerPath调试器的位置

复合launch配置

​ 启动多个调试会话的另一种方法是使用复合启动配置。复合启动配置列出了应该并行启动的两个或多个启动配置的名称。preLaunchTask可以选择指定在启动各个调试会话之前运行的 。

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Server",
      "program": "${workspaceFolder}/server.js"
    },
    {
      "type": "node",
      "request": "launch",
      "name": "Client",
      "program": "${workspaceFolder}/client.js"
    }
  ],
  "compounds": [
    {
      "name": "Server/Client",
      "configurations": ["Server", "Client"],
      "preLaunchTask": "${defaultBuildTask}"
    }
  ]
}

注意:compounds与 task并列的

参考资料

  1. https://code.visualstudio.com/docs/editor/debugging#_launch-configurations

launch与test文件使用过程

我的理解:你在test文件种设置各种指令,这些指令完成对程序的编译连接等等,然后在launch种设置调试指令。每次调试的时候会先执行test任务然后在执行launch命令,从而完成编译后调试。而具体如何用指令来对c++程序进行编译,则需要进一步学习,也就是说,这两个文件的编写,可以大大简化以后要进行的重复性工作,但也仅仅只有这个帮助。至于c++程序在linux下如何编译、编译有哪些参数、在 基于VSCode和CMake实现C/C++开发 | Linux篇有一些介绍。在使用的过程一定要使用好CTRL+SPACE,这能帮助你了解此处参数和属性到底有那些、有什么意义

<think>嗯,用户问的是VSCode里没有launch.json的问题。我需要先回忆一下VSCode的调试配置流程。首先,当用户创建一个新项目或者打开一个已有项目时,如果项目中没有.vscode文件夹,或者该文件夹下没有launch.json,VSCode不会自动生成这个文件,除非用户尝试运行或调试代码。 可能用户是第一次在VSCode中调试程序,所以遇到了没有launch.json的情况。这时候,用户需要知道如何生成这个文件。通常的步骤是打开调试侧边栏,然后点击“创建launch.json文件”。但可能用户没有找到这个选项,或者操作过程中遇到了问题。 接下来要考虑不同的编程语言,比如Python、C++、JavaScript等,因为不同的语言可能需要不同的配置模板。如果用户没有安装相应的扩展,VSCode可能无法自动生成正确的配置。例如,Python需要安装Python扩展,C++需要安装C/C++扩展。这时候可能需要提示用户检查是否安装了正确的扩展。 另外,如果用户手动创建了.vscode文件夹,但launch.json内容不正确,也可能导致调试失败。需要指导用户如何正确配置,或者使用VSCode提供的模板。 还要考虑到用户可能对调试配置不太熟悉,需要解释launch.json的作用,比如设置启动参数、环境变量等。可能还需要提醒用户,如果项目不需要特殊配置,VSCode有时可以自动调试,但复杂情况还是需要手动配置。 最后,检查常见问题,比如路径是否正确,配置文件是否有语法错误,扩展是否冲突等。这些都是用户可能遇到的问题点,需要逐一说明解决方法。</think>在 Visual Studio Code (VSCode) 中,`launch.json` 是调试配置文件。当您首次尝试调试代码时,如果项目中没有该文件,系统会引导您创建它。以下是逐步说明: ### 1. 为何需要创建 launch.json - 用于配置调试器参数(如:程序入口、环境变量、启动参数等) - 支持不同编程语言的调试器(Python/C++/Node.js等) - 可自定义多个调试配置方案 ### 2. 自动创建流程 1. 打开调试面板: - Windows/Linux:`Ctrl+Shift+D` - Mac:`Cmd+Shift+D` 2. 点击顶部调试下拉框旁的齿轮图标 ![齿轮图标](https://code.visualstudio.com/assets/docs/editor/debugging/debugicon.png) 3. 选择对应编程环境(如 `Python`、`Node.js` 等) ### 3. 常见问题排查 #### ▶ 情况一:没有弹出环境选项 - **原因**:未安装对应语言扩展 - **解决方法**: 1. 安装扩展(如 Python 需装 `ms-python.python`) 2. 重新执行上述步骤 #### ▶ 情况二:文件生成错误 - 检查 `.vscode` 文件夹权限 - 手动创建示例(Python 模板): ```json { "version": "0.2.0", "configurations": [ { "name": "Python: 当前文件", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal" } ] } ``` #### ▶ 情况三:调试器无法启动 - 确保程序路径 `${file}` 指向有效文件 - 检查调试控制台报错信息 ### 4. 高级配置技巧 通过 `launch.json` 可配置: - 参数传递: ```json "args": ["--input", "data.txt"] ``` - 环境变量: ```json "env": {"PYTHONPATH": "${workspaceFolder}"} ``` - 预处理任务: ```json "preLaunchTask": "build-project" ``` ### 5. 注意事项 - 该文件应存放在项目根目录的 `.vscode` 文件夹内 - 可通过 `F5` 快捷键快速启动调试 - 简单项目可不配置 `launch.json`(VSCode 支持自动调试) 如果仍有问题,请提供: 1. 使用的编程语言 2. 已安装的扩展列表 3. 调试时控制台的错误输出
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值