手把手带你会习VSCode debug,不信你还不会!

2022年了,该学会用vscode debug了!下面本篇文章手把手带大家会习vscode debug,希望对大家有所帮助!

手把手带你会习VSCode debug,不信你还不会!

VSCode作为目前使用人数最多的IDE,在前端开发者中也是十分受欢迎的。它免费、开源、还具备许多强大的功能,例如智能提示、插件商店、集成Git等等,但除此之外还有一个被许多开发者忽略的功能——运行和调试(Run and Debug)。【推荐学习:《vscode入门教程》】

你可能会说,要什么Debug,我console.log一把梭走天下。没错,这也是目前很多人在使用的调试方法。但是既然VS Code具备这样的功能,试一试,或许会有新的收获呢~

简介

VS Code的关键特性之一就是它具有强大的调试(debug)功能,内置的调试器(debugger)可以帮助开发者快速的编辑、编译和调试。

VS Code内置的调试器支持Node.js运行时,并且能够调试JavaScriptTypeScript、以及任意其他能够编译成JavaScript的语言

如果想要调试其他的语言和运行时,包括但不限于PHPRubyGoC#等等,可以在扩展商店中寻找相关的Debugger扩展并且安装它,这里我们就不过多的叙述了。

简单调试

为了方便我们理解常用功能,直接进行调试来学习相关功能更容易上手。这里我们用一个简单的Node.js项目作为例子进行调试。

首先准备一个app.js:

let msg = 'Hello world';console.log(msg);let numA = 6;let numB = 13;let num = numA + numB;console.log(num);

这样我们就有一个简单的Node.js程序了。

接下来我们点击左侧菜单中的运行与调试图标(图标是一个虫子+开始,顾名思义debug&run),这里就是初始化的面板;然后我们在代码中需要打断点的地方加上断点:

1.png

直接点击运行和调试:

2.png

程序跑起来了,并在断点处也停下来了。调试面板也被激活,显示了变量、监控、调用堆栈、断点的面板。点击上方调试操作栏的第一个图标(继续,快捷键是F5),程序会走到下一个断点,并且变量面板中的msg变量会进行更新:

3.png

继续点继续,直到跳出最后一个断点,我们的调试步骤就结束了。这就是一个最简单的Node.js程序的调试过程。

当然我们实际开发中肯定不会有这么简单的程序,所以接下来我们来详细介绍下调试中的相关功能。

功能介绍

虽然上面的例子是Node.js项目,但是对于其他的调试器,大部分的概念和特性也都是通用的。

运行面板和菜单

在上面的例子里我们已经看到过运行面板了。点击左侧的“运行和调试”图标即可打开面板。运行面板显示了所有关于运行和调试的相关信息。

如果还没有配置launch.json,那么VS Code就会显示初始状态的面板。例子中我们就没有进行配置,所以显示就是初始状态:

4.png

除了左侧的图标,也可以使用顶部的顶级菜单 运行(Run)。这里的命令基本和面板中的一致:

5.png

想不起快捷键的时候也可以在这里看看~

启动配置

上面的例子中我们选择了“运行和调试”,VS Code直接使用了内置的Node.js调试配置启动了调试步骤。然而大部分场景中,我们不会有这么简单的调试。此时创建一个自定义的launch配置文件就十分有必要了,我们可以在配置文件中保存一些调试的细节。

VS Code把调试配置信息保存在.vscode目录下的launch.json文件中(.vscode目录一般存在于项目的根目录下)。

要创建一个launch.json文件,在运行初始化面板中点击“创建一个launch.json”:

6.png

VS Code会去尝试自动检测当前调试环境。如果它失败了,我们就需要自己手动选择:

7.png

选择Node.js后,VS Code会自动生成配置文件以及.vscode目录。这里是Node.js默认的launch.json:

{    // 使用 IntelliSense 了解相关属性。     // 悬停以查看现有属性的描述。    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387    "version": "0.2.0",    "configurations": [        {            "type": "pwa-node",            "request": "launch",            "name": "Launch Program",            "skipFiles": [                "/**"            ],            "program": "${workspaceFolder}/app.js"        }    ]}

这里需要注意的是,对于不同类型的调试器,launch配置中的属性可能都是各不相同的。可以使用VS Code内置的智能提示功能去查看有哪些属性可用,hover属性就可以看到帮助信息。

不要想当然地认为某个调试器中存在的属性放到其他的调试器下中也能起作用。调试前要确保所有配置都是有意义的。

launch和attach

在VS Code中,有两种核心的调试模式,LaunchAttach,他们为开发者提供两种不同类型的工作流。

最简单的方式来理解这两种工作流:

launch配置可以理解为VS Code启动调试程序的说明书;attach配置则是如何将VS Code的调试器连接到已运行的应用程序或进程的方法;

VS Code的调试支持用调试模式启动一个程序,或者用调试模式附加到一个已经在运行中的程序。使用哪种调试配置,取决于我们的调试需求。

launch属性

当你在launch.json中配置了type属性的值后,就可以使用VS Code的智能提示(command+I)来查看所有可用的属性:

8.png

下面的属性是每个launch配置文件必须具备的:

type – 调试器的类型。request – 请求类型,目前支持launch和attachname – 在Debug启动配置下拉菜单中显示的名字

下面是一些可选的配置属性:

presentation – 在 presentation 对象中,用 ordergroup, 和 hidden 属性可以在调试配置下拉菜单以及快速选择调试选项中进行排序、分组以及隐藏配置。preLaunchTask – 在开始一个调试会话前可以启动一个任务postDebugTask – 在结束调试后启动一个任务internalConsoleOptions – 这个属性用来控制调试控制台面板的可见性。debugServer – 只为调试扩展的作者使用(for debug extension authors only) 这个属性允许你去连接到一个特定的端口而不是去启动调试适配器。serverReadyAction – 如果要在调试中的程序向调试控制台或集成终端输出特定消息时在web浏览器中打开URL。

许多调试器支持以下的属性:

program – 当启动调试器时要运行的可执行程序或文件args – 传给程序用来调试的参数env – 环境变量 ( null 值可以用来 “undefine” 一个变量)envFile – 具有环境变量的.env文件的路径cwd – 用来寻找依赖和其他文件的当前工作目录port – 连接到正在运行的进程时的端口stopOnEntry – 当程序启动时立即停止console – 使用哪种控制台,例如 internalConsoleintegratedTerminal, or externalTerminal

变量替换

VS Code在launch.json中提供了许多有用的变量,并在启动时支持字符串内部的变量替换。例如,${workspaceFolder}给出了工作区文件夹的根路径,${file}给出了在活动编辑器中打开的文件,${env:Name}给出了环境变量Name的值。可以查看变量引用 来查看所有的预定义变量。

调试操作

当启动调试会话后,调试工具栏会显示在顶部:

9.png

从左到右依次是:

继续/暂停 F5:执行到下一个断点单步跳过 F10:从断点处执行单步调试单步调试 F11:进入函数内部单步跳出 shift+F11:跳出函数内部重启shift+command+F11结束shift+F5

断点(Breakpoints)

点击编辑器左边距可以切换断点(快捷键为F9)。在运行视图中的“断点”部分中,可以对断点进行更多的控制。

10.png

编辑器左侧的断点一般展示为红色实心圆,不可用的断点为灰色实心圆。如果调试器支持在不同的错误or异常中退出,在断点部分中也会可用。

记录点(Logpoints)

记录点是断点的一个变种,它不会break到调试器中,但是能够往控制台中打印一些信息。当调试不能暂停or停止的生产服务时,记录点特别有用。

记录点显示为一个菱形的图标。记录信息是解释文本但是也可以使用可计算的表达式(用大括号包裹)

11.png

12.png

13.png

就像普通的断点一样,记录点也可以启用、禁用,并且通过条件来控制。

Node.js调试

在VS Code中调试Node.js有三种方法:

在VS Code的集成终端中使用auto attach来调试程序;使用JavaScript调试终端使用launch配置,或者attach到其他的程序

Auto Attach

当启用Auto Attach功能时,Node调试器会自动附加到VS Code中启动的Node.js进程上。

Command+Shift+P打开输入Auto Attach即可开启功能:

14.png

15.png

这里的三个选项,我们选择智能(smart)就可以。开启后重启一下VS Code,启动程序后调试器就会自动附加上。此时下方的状态栏会显示auto attach的状态,也可以点击进行更改。

16.png

JavaScript集成终端

和auto attach相似,用JavaScript调试终端可以自动的调试你在终端里运行的任何Node.js程序。在终端的下拉选择框中选择JavaScript Debug Terminal即可:

17.png

Launch配置调试

通过配置launch.json进行调试是比较传统的调试方式,根据自己的项目代码需求进行配置,灵活性比较高。

除了可以直接通过node命令启动Node.js程序,我们也可以通过配置使用npm或其他工具进行调试。

任何PATH上的可用程序(例如npm、gulp等等)都可以用在runtimeExecutable属性中,并且参数可以放在runtimeArgs中传入。如果npm脚本或其他工具隐式地指定了要启动的程序,则不必设置 program 属性。

我的上一篇文章 记一次不完全的源码调试之npm install 就是通过这种方式进行调试的。

SourceMap调试

VS Code的JavaScript调试器支持可以帮助调试转义语言的source map(例如Typescript、压缩or混淆过的JavaScript等)。使用source map就可以在源码中单步调试或者设置断点。

如果原始代码中不存在source map,或者source map被破坏,无法成功映射原始代码和生成的JavaScript,则断点显示为未验证(灰色空心圆),如下图:

18.png

source map功能由sourceMaps属性控制,默认为true。要使用source map进行调试的前提是,我们的项目代码中要能生成source map文件才可以使用,所以如果使用Typescriptbabelwebpack等,需要进行相应的配置生成source map文件后再进行对应的配置使用。详细可以查看VSCode-Source map 相关的官方文档。

如果想要使用VS Code调试vue项目,可以参考# 如何让 Vue、React 代码的调试变得更爽。该配置在vue2的项目中可用,vue3目前还没实践成功。

高级断点

最后介绍一下VS Code中的一些高级断点功能,日常调试可能用不到但是可以了解一下。

条件式断点

VS Code中一个强有力的调试功能是具有基于表达式、命中次数或两者的组合设置条件的能力。

表达式条件:每当表达式的计算结果为true时,都会命中断点。命中次数:“命中次数”控制断点需要被点击多少次才能中断执行。

你可以在创建断点或修改现有断点时,添加条件or命中次数。在这两种情况下,都会打开带有下拉菜单的内联文本框,可以在其中输入表达式:

19.png

i=3时,会在断点处停下:

20.png

或者设置命中次数:

21.png

命中次数等于5时在断点处停下:

22.png

如果调试器不支持条件断点,那么就不会显示添加和编辑的菜单。

内联断点

只有当执行到达与内联断点关联的列时,才会命中内联断点。当调试在一行中包含多条语句的小型代码时很有用,例如for循环:

23.png

shift+F9添加内联断点。内联断点在编辑器中内联显示。

总结

VSCode的调试功能还是十分强大的,上面介绍的只是一部分内容,官方文档中还有很多内容可以探索。

虽然对于vue.js这种有自己的devtool的框架,直接在浏览器调试更加直观,但调试其他的Node.js程序,用VS Code效率还是很高的。

更多关于VSCode的相关知识,请访问:vscode教程!!

以上就是手把手带你会习VSCode debug,不信你还不会!的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/57530.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
禁闭求生2浆果皮革在哪 浆果皮革获取攻略
上一篇 2025年11月10日 05:53:33
Python入门的书籍推荐列表_Python入门经典教材的比较分析
下一篇 2025年11月10日 05:55:34

相关推荐

  • VSCode怎么新建ipynb文件_VSCode创建和编辑Jupyter笔记本文件教程

    答案:在VSCode中运行Jupyter笔记本需准备Python环境、安装Python扩展并确保安装ipykernel;通过命令面板或文件菜单新建笔记本,编辑时可添加代码或Markdown单元格,运行代码后结果实时显示;通过右上角内核选择器切换Python环境,推荐为不同项目配置独立虚拟环境以避免依…

    2026年9月21日
    000
  • 如何为VSCode设置自定义的代码高亮颜色?

    答案:通过settings.json中的editor.tokenColorCustomizations可自定义VSCode代码高亮颜色,支持全局或特定主题下修改关键字、字符串等元素颜色,结合textMateRules和作用域精确控制,提升代码可读性。 为 VSCode 设置自定义的代码高亮颜色,可以…

    2026年9月21日
    000
  • 如何配置VSCode来完美支持Vue.js开发?

    安装Volar、TypeScript Vue Plugin、ESLint和Prettier扩展,禁用Vetur,在settings.json中配置vetur.enabled为false,设置ESLint保存时自动修复并指定Prettier为默认格式化工具,关联.vue文件语言,启用TypeScrip…

    2026年9月21日
    000
  • linux内核定时器实验

    linux内核定时器实验linux内核定时器实验linux内核定时器实验linux内核定时器实验

    大家好,又见面了,我是你们的朋友全栈君。 文章目录一、linux时间管理和内核定时器简介1.内核时间管理简介2.内核定时器简介1.init_timer 函数2.add_timer 函数3.del_timer 函数4.del_timer_sync 函数5.mod_timer 函数3.linux内核短延…

    2026年9月21日 用户投稿
    000
  • VSCode编写Java代码方法_VSCode搭建Java开发环境实战教程

    答案:在VSCode中配置Java开发环境需安装JDK并设置环境变量,再安装VSCode及Java扩展包,即可实现Java项目的创建、编写、运行与调试。它轻量、启动快,支持多语言和丰富扩展,集成Maven/Gradle,适合日常开发。 在VSCode里编写Java代码,说白了,就是把这个轻量级的代码…

    2026年9月21日
    100
  • VSCode侧边栏怎么去掉_VSCode侧边栏隐藏教程

    隐藏VSCode侧边栏可通过Ctrl + B(Windows/Linux)或Cmd + B(macOS)快捷键快速切换,也可通过菜单栏“视图 > 外观 > 切换侧边栏可见性”或命令面板执行“View: Toggle Sidebar Visibility”实现。推荐使用快捷键操作,效率最高…

    2026年9月21日
    100
  • VSCode的便携模式(Portable Mode)如何工作,它适合哪些使用场景?

    VSCode便携模式通过将编辑器与data文件夹置于同一目录,实现配置、扩展和数据的集中存储,无需安装即可运行。1. 下载ZIP版解压至目标路径;2. 创建data文件夹;3. 运行Code.exe,所有数据自动存入data目录。适用于公共电脑、跨设备开发、教学演示、测试配置及受限环境。需注意手动更…

    2026年9月21日
    200
  • VSCode的代码折叠功能好用吗?

    VSCode代码折叠功能支持多种方式:点击箭头、快捷键、命令面板及按区域类型折叠;可自定义基于缩进的折叠、默认层级和提示装饰器;集成语言服务后能智能识别JSX、Vue组件等结构,提升大型文件编辑效率。 VSCode 的代码折叠功能非常实用,尤其在处理大型文件或复杂结构时能显著提升阅读和编辑效率。 支…

    2026年9月21日
    100
  • 如何备份VSCode的全部设置和扩展?

    备份VSCode全部设置和扩展需保存配置文件与扩展目录;2. 配置文件位于各系统指定路径的User文件夹内,包含settings.json和keybindings.json;3. 通过code –list-extensions导出扩展列表并用xargs批量重装可恢复扩展;4. 推荐直接复…

    2026年9月21日
    100
  • 怎样使用VSCode的调试控制台执行表达式并实时监控变量状态?

    在VSCode调试时,通过调试控制台可直接执行表达式并查看变量状态;2. 启动调试并暂停在断点后,打开“调试控制台”输入表达式如10*5或user.getName()即时求值;3. 使用“监视”面板添加如count等表达式持续跟踪变量变化;4. 通过“作用域”面板查看局部变量、闭包中的上下文信息,支…

    2026年9月21日
    100
  • 怎样配置VSCode与Jest、Cypress等测试框架进行集成测试?

    首先安装Jest和Cypress插件及依赖,配置jest.config.js和.vscode/settings.json实现Jest自动运行,再通过launch.json添加Cypress调试配置,最后在package.json中定义统一脚本命令,使两者在VSCode中高效协同工作。 要在 VSCo…

    2026年9月21日
    000
  • VSCode的括号匹配功能如何自定义?

    可通过 settings.json 自定义括号高亮的边框和背景色;2. 用 editor.matchBrackets 控制是否启用高亮;3. 启用 bracketPairColorization 可为嵌套括号着色;4. 使用 Ctrl/Cmd + Shift + 快速跳转配对括号。 VSCode 的…

    2026年9月21日
    100
  • 如何通过命令行参数启动VSCode?

    掌握VSCode命令行用法可提升开发效率,需先安装code命令到PATH,之后可用code .打开目录、code 文件名打开文件、code –diff比较文件、–disable-extensions排查问题,并支持别名与Shell结合使用。 通过命令行启动 VSCode 是一…

    2026年9月21日
    200
  • VSCode的代码格式化快捷键是什么?

    VSCode代码格式化快捷键为Shift+Alt+F(Windows/Linux)或Shift+Option+F(macOS),需安装对应语言的格式化工具;若无效,可能是未安装扩展、文件类型不支持或快捷键冲突;可右键选择“格式化文档”或通过命令面板执行,也可在键盘快捷方式中自定义。 VSCode的代…

    2026年9月21日
    000
  • VSCode的快捷键映射冲突怎么办?

    首先查看快捷键绑定情况,通过Ctrl+K再Ctrl+S打开键盘快捷方式界面,搜索目标键组合如Ctrl+Shift+P,查看并识别冲突命令;接着右键冲突命令选择“更改键绑定”设置新组合或删除多余绑定;为精确定位,可查看命令ID如workbench.action.quickOpen区分相似命令;若调整较…

    2026年9月21日
    000
  • 在VSCode中如何安全地切换分支而不丢失当前修改?

    先处理未提交修改再切换分支。可通过提交更改、使用Stash保存临时修改,或选择性暂存部分文件来安全切换,并在切换后恢复贮藏的更改,避免代码丢失。 在 VSCode 中切换分支时,如果当前有未提交的修改,直接切换可能会导致冲突或代码丢失。要安全切换分支,关键是先处理好当前的更改。以下是几种稳妥的方法。…

    2026年9月21日
    100
  • 如何自定义代码的格式化规则?

    自定义代码格式化规则需选择合适工具并配置文件实现统一风格。1. 根据语言选用主流工具如Prettier、Black、clang-format等;2. 在项目根目录创建对应配置文件如.prettierrc、.eslintrc.js或pyproject.toml,定义缩进、引号、行宽等规则;3. 将配置…

    2026年9月21日
    100
  • 如何利用Draw.io Integration扩展在VSCode中绘制并嵌入架构图?

    安装Draw.io Integration扩展后,可在VSCode中直接创建编辑图表。右键选择“Create Diagram with Draw.io”新建.diagram文件,双击打开内置编辑器,拖拽组件绘制流程图、架构图等。保存后自动生成Base64编码的嵌入代码,粘贴至Markdown即可预览…

    2026年9月21日
    200
  • 怎样在VSCode中快速生成注释文档?

    安装插件如Document This和Koro File Header,通过快捷键在VSCode中快速生成函数及文件注释,支持自定义模板,提升注释效率与规范性。 在 VSCode 中快速生成注释文档,主要依赖插件和快捷键配合代码语言特性来实现。不同编程语言支持方式略有差异,但核心思路是使用智能提示和…

    2026年9月21日
    200
  • VSCode怎么生成项目模板_VSCode使用自定义代码片段创建项目模板教程

    答案:VSCode可通过自定义代码片段高效生成文件模板,结合工作区设置与脚手架工具实现项目初始化。利用用户代码片段(User Snippets)定义常用代码结构,如React组件或HTML骨架,通过prefix触发,支持制表位快速编辑;推荐将团队共享片段设为工作区级并提交至Git,确保规范统一;配合…

    2026年9月21日
    700

发表回复

登录后才能评论
关注微信