VS code调试代码快速上手必备知识
一、通过简单的配置运行一个JavaScript程序
1、打开(创建)一个新的工作空间(文件夹),并创建一个js文件:
var name='world';
var s='Hello,${name}!';
console.log(s);
2、点击调试后会提示需要配置:

点击后会自动生成一个json配置文件,之后将默认启动文件名修改为你刚创建的文件名:

Ctrl+S保存json配置文件,之后就可以调试(运行)你写的javascript程序来。
二、使用VS code调试代码的一些常识,launch.json文件的一些属性说明以及一些用法说明(详细文档见:https://code.visualstudio.com/docs/editor/debugging#_launch-configurations)
1、基本常识
首先创建(打开)一个文件夹作为工作空间,然后创建一个源文件。 Ctrl+Shift+D快速进入调试窗口,也可以通过旁边的虫子(锁)图标进入;调试当前文件可直接按F5。通常情况下,第一次在某个工作空间(文件夹)中调试时需要先编写配置文件,配置文件launch.json位于工作空间的.vscode文件夹中。第一次调试时,点击齿轮图标选择需要配置的文件类型(JavaScript自带有,其他编程语言如C语言、python、Java等需要预先下载对应的调试器插件):

选择之后就会在对应位置自动生成一个完成了基础配置的json文件。(VS code有两种核心的调试模式:launch和attach。详见官方文档,本文以launch为背景)。我们可以修改配置信息,还可以向其中添加新的配置信息。配置完成后就可以debug程序了,大部分情况下debug等价于run的,但是并不是所有调试器插件都支持run。
2、luanch.json文件的一些属性说明
(1)、以下属性是每个配置文件的必备属性
type:后面跟的是启动调试使用的调试器类型,如node,php,go等等;
request:后面跟的是配置文件类型,如launch,attach;
name:后面是写给自己看的(随便写)
program:一般设置为你要调试的文件,格式为:"program": "${workspaceFolder}\\路径\\文件名.js")

(2)、以下属性是几个实用的可选项(更多的见官方文档)
preLaunchTask:在调试开始前执行预设任务,通常配合task.json文件使用。
postDebugTask:在调试结束时启动一个任务,配合task.json文件使用。(与preLaunchTask一道,准备单独写一篇)
args:程序调试时传递给程序的命令行参数,一般设为[ ]即可
cwd:当前的工作目录
console:选择控制台类型,有internalConsole, integratedTerminal和 externalTerminal三种。
(3)、一些预先定义的变量(详见:https://code.visualstudio.com/docs/editor/variables-reference)
${workspaceFolder} ------ 工作空间的根目录
${file} ------ 在活动编辑器中打开的文件
${relativeFile} ------ 当前打开文件相对于workspaceFolder的路径
${fileBasename} ------ 当前打开文件的基础名字
${fileBasenameNoExtension} ------ 当前打开文件的基础名字不包含扩展名
${excePath} ------ 正在运行的可执行文件的路径
${defaultBuildTask} ------ 生成任务的默认名字
${env:USERNAME} ------ 使用环境变量(USERNAME为环境变量名称)
3、一些用法说明
(1)、一个小技巧让配置在工作空间之间共享(如果某个工作空间里面有了launch配置文件则会忽略全局共享的配置文件)
"launch": {
"version": "0.2.0",
"configurations": [{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${file}"
}]
}
(2)、多目标调试
涉及多个进程(例如,客户端和服务器)的复杂场景,VS代码支持多目标调试,:启动第一个调试会话后,可以启动另一个会话。一旦第二个会话启动并运行,就会切换到多目标模式。
(3)复合配置
使用compound来对多条配置信息进行,例如:
{
"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}"
}
]
}
(4)断点的使用
VS code还支持breakpoint(断点)和logpoint(记录点),后者是断点的变体,可以将消息记录到控制台。(更多高级用法见官方文档)

(5)、远程调试,在服务调试时自动打开一个URL等。(官方文档:https://code.visualstudio.com/docs/editor/debugging#_launch-configurations)
VS code调试代码快速上手必备知识的更多相关文章
- Java动态代理代码快速上手
动态代理的两个核心的点是:代理的行为 和 代理机构. 举个例子,上大学的时候,很多同学吃午饭的时候都是叫别人带饭,有一个人H特别热心肠,想了一个办法,他在门口挂了个公示牌,每天有谁想要找人带饭就写公告 ...
- Centos6.5使用yum安装mysql——快速上手必备(转载)
第1步.yum安装mysql[root@stonex ~]# yum -y install mysql-server安装结果:Installed: mysql-server.x86_64 0: ...
- Centos6.5使用yum安装mysql——快速上手必备
第1步.yum安装mysql [root@stonex ~]# yum -y install mysql-server 安装结果: Installed: mysql-server.x86_6 ...
- Centos6.5使用yum安装mysql——快速上手必备(转)
第1步.yum安装mysql[root@stonex ~]# yum -y install mysql-server安装结果:Installed: mysql-server.x86_64 0: ...
- Linux学习总结(4)——Centos6.5使用yum安装mysql——快速上手必备
第1步.yum安装mysql [root@stonex ~]# yum -y install mysql-server 安装结果: Installed: mysql-server.x86_6 ...
- Visual Studio Code python 代码快速自动提示
1.file --> setting->设置 搜索 python 或者auto_complete setting.json { "explorer.confirmDelete&q ...
- windows下用visual studio code 调试go代码
http://www.golangtc.com/download下载安装包或压缩包 配置环境变量 配置GOROOT: 配置PATH:在PATH最后添加 配置GOPATH:GOPATH的作用请自行百度, ...
- vue.js和vue-router和vuex快速上手知识
vue.js和vue-router和vuex快速上手知识 一直以来,认为vue相比react而言,学习成本会更低,会更简单,但最近真正接触后,发现vue的各方面都有做一些客户化的优化,有一些亮点,但也 ...
- CSS快速入门基础篇,让你快速上手(附带代码案例)
1.什么是CSS 学习思路 CSS是什么 怎么去用CSS(快速上手) CSS选择器(难点也是重点) 网页美化(文字,阴影,超链接,列表,渐变等) 盒子模型 浮动 定位 网页动画(特效效果) 项目格式: ...
随机推荐
- 初识JS之数据类型
JavaScript JavaScript引入方式 Script标签内写代码 <script> // 在这里写你的JS代码 </script> 引入额外的JS文件 <sc ...
- 29.eval函数
eval 函数 eval() 函数十分强大 -- 将字符串 当成 有效的表达式 来求值 并 返回计算结果 123456789101112131415 # 基本的数学计算In [1]: eval(&qu ...
- 醉酒驾驶VS睡眠不足,哪个更危险
在全球范围内,睡眠不足驾驶每年导致成千上万起交通事故,醉酒驾驶就更不用说了.毫无疑问,两种情况下都不应该驾车,都有危险.睡眠不足和醉酒驾驶相对来说哪个更危险呢? 如果要问哪一个"好" ...
- 微信小程序采坑之scroll-view
当设置了scroll-y为true之后,纵向是没有问题的,会出现滚动条. Android上一切都是那么的祥和, ios上你会发现如果你scroll-view里面的东西超过横向的宽度时,就会隐藏了. 也 ...
- MySQL学习之路 一 : MySQL 5.7.19 源码安装
MySQL 5.7.19 源码安装 查看系统: # cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 安装依赖包 # yum - ...
- SpringBoot图文教程9—SpringBoot 导入导出 Excel 「Apache Poi」
有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...
- 浅谈C# Dictionary实现原理
使用C#已经有好多年头了,然后突然有一天被问到C#Dictionary的基本实现,这让我反思到我一直处于拿来主义,能用就好,根本没有去考虑和学习一些底层架构,想想令人头皮发麻.下面开始学习一些我平时用 ...
- spring jpa ManyToMany 理解和使用
1.java和jpa 中所有的关系都是单向的.这个关系数据库不同,关系数据库,通过外键定义并查询,使得反向查询总是存在的. 2.JPA还定义了一个OneToMany关系,它与ManyToMany关系类 ...
- Django报Warning错误 RuntimeWarning: DateTimeField Goods.create_at received a naive datetime (2019-07-31 23:05:58) while time zone support is active
报错和UTC(世界标准时间)有关,在settings.py 文件中设置 USE_TZ = False 警告错误不再报
- js获取当前日期是一年中的第几天
js获取当前日期为一年中的第几天 const currentYear = new Date().getFullYear().toString(); // 今天减今年的第一天(xxxx年01月01日) ...