简说Visual Studio代码进行调试

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 前端编程很有趣,开发人员有能力创建他们想要的任何东西,任何效果。不幸的是,当遇到bug时,这种乐趣就会消失。JavaScript开发人员可能首先想到的是alert、console.log语句。添加console.log()是可视化代码状态的一种快速方法。

前端编程很有趣,开发人员有能力创建他们想要的任何东西,任何效果。不幸的是,当遇到bug时,这种乐趣就会消失。JavaScript开发人员可能首先想到的是alertconsole.log语句。添加console.log()是可视化代码状态的一种快速方法。

然而,在开发更复杂的程序时,将所有内容都记录到终端可能会令人沮丧。Visual Studio 代码(VS从这里开始的代码)具有内置特性,允许更容易地调试和变量监视。

让我们看看如何改进调试体验!

准备条件

需要安装软件:

  • Visual Studio 代码 v1.50 或更高版本
  • Node.js 8.0或以上

在本文中,将使用一个简单的 Node.js 脚本,它执行一些用于调试的基本计算。脚本如下:

/**
 * 两个数的相加
 * @param {number} num1
 * @param {nunber} num2
 * @return {number} 两个数的相加
 */
const sum = (num1, num2) => {
    const add = num1 + num2;
    return add;
};
/**
 * 自定义数字打印
 * @param {number} num
 */
print = function(num) {
    console.log(`迭代后,总数等于: ${num}`);
};
const iterations = 5;
let total = 0;
console.log(process.env.NODE_ENV);
for (let index = 1; index <= iterations; index++) {
    console.log(`Round: ${index}`);
    const random = Math.random();
    const result = sum(index, random);
    total += result;
}
print(total);

Debug Launcher配置

要开始调试,通常首先创建一个简单的调试配置,该配置包含一个JSON对象。一个非常简单的 Node.js 应用程序也可以在不进行任何配置的情况下进行调试,因为 VS Code 知道正在处理 Node.js 代码。首先,单击带有bug的图标并在活动栏中圈出。这将显示DEBUG窗格。确保将环境设置为 Node.js,并在 Visual Studio 代码中打开项目。

image.png

在窗格的顶部,单击下拉菜单并选择Add Configuration。这可以添加一个新的配置,并将打开一个名为launch的新文件。存储所有调试配置的json。该文件存储在项目文件夹中由VS代码创建的.vscode文件夹中。

image.png

如下图所示,创建了一个调试配置进行试验。这个特定的配置名为Debug JS。可以给它取任何你喜欢的名字。如果需要创建几个不同的调试配置来测试项目的不同设置,那么命名功能尤其有用。

image.png

配置代码如下:

{
    // 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": [
        {
            "type": "node",
            "request": "launch",
            "name": "Debug Js",
            "program": "${workspaceFolder}/debug/app.js",
            "env":{
                "NODE_ENV":"development"
            }}
        }
    ]
}

program属性定义调试时需要启动的文件的路径。在启动调试器时,${workspaceFolder}变量被替换为工作区路径。在一个名为/debug的文件夹中设置了app.js文件的路径。

最后,设置一个环境变量来配置 Node.js 应用程序。JSON调试配置的env部分设置环境变量,如NODE_ENV。这可以用来更改行为,比如日志的冗长。最后,不要忘记保存launch.json配置。

其他有用的配置项包括:

  • cwd:在这个目录中启动要调试的程序。
  • args:传递给运行时可执行文件的可选参数数组。例如,希望传递目录路径:"args":["--dir", "./libs"]
  • envFile:包含环境变量定义的文件的可选路径。

现在已经定义好了调试配置,选择创建的名称并单击play箭头开始调试。应用程序将以调试模式启动、执行和结束。并显示输出。

image.png

添加断点

普通断点

通过单击行号左边的边距设置断点。将添加一个红点,表示调试器将在此特定行号处停止程序的执行。现在在第30行添加一个断点,以检查 total 变量的值。

image.png

示例代码循环 5 次计算一个数字。这个数字与total变量进行相加中,在程序结束时打印出来。现在我们通过启动调试器来检查代码,看看代码的行为是否符合预期。

image.png

点击屏幕顶部debug工具栏中的play图标,继续执行代码,直到遇到新的断点为止。在每一轮之后,total的值都会发生变化。

image.png

Logpoint

logpoint显示一条类似console.log()的消息,它不会停止执行。该消息可以包含文本或在花括号分隔符{…}中引用的变量。在本例中,对{num}的引用被num变量的当前值替换。

要添加新的日志点,右键单击断点选择add logpoint...

image.png

然后输入一些适当的文本。

image.png

image.png

conditional断点

表达式断点只允许在满足特定条件时进行日志记录。假设只在num值大于或等于17时才进行日志记录。否则,代码不会崩溃。

要添加一个表达式断点,右键单击断点选择conditional,然后输入一个相关的表达式。

image.png

执行后,只有当num的值大于等于17才会执行到断点。

Hit Count 计算断点

在添加conditional断点基础上,选择Hit Count即可添加命中计数断点。这种类型的断点只用于在特定函数或代码块被命中一定次数后才开始日志记录。以循环为例,只在特定代码行被命中三次时暂停代码。

image.png

image.png

运行调试配置,当第三次点击代码行时,它会暂停。

总结

很明显,Visual Studio Code 在帮助开发人员调试应用程序方面做得很好。为设置断点提供了很多可能性,例如命中计数或表达式断点。与使用console.log()语句相比,这绝对是一个很大的改进,因此也提高了开发效率,并且可以更好地重现发生的错误。一般来说,使用调试器可以使用表达式、观察者或日志点,从而提供更好的体验。

使用调试配置,可以轻松地在项目的不同设置之间切换。


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
存储 程序员 编译器
Visual Studio 2022 程序员必须知道高效调试手段与技巧(下)终章
Visual Studio 2022 程序员必须知道高效调试手段与技巧(下)终章
168 0
|
开发工具 git C++
『实用教程』使用Visual Studio自带的Git管理回滚代码版本
使用Visual Studio自带的Git管理回滚代码版本
1609 0
『实用教程』使用Visual Studio自带的Git管理回滚代码版本
|
2月前
|
JavaScript 前端开发 开发者
如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 来检查代码规范并自动格式化 Vue.js 代码。
【10月更文挑战第7天】随着前端开发技术的快速发展,代码规范和格式化工具变得尤为重要。本文介绍了如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 来检查代码规范并自动格式化 Vue.js 代码。通过安装和配置这两个工具,可以确保代码风格一致,提升团队协作效率和代码质量。
278 2
|
1月前
|
JavaScript 前端开发 开发者
如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码,包括安装插件、配置 ESLint 和 Prettier 以及 VSCode 设置的具体步骤
随着前端开发技术的快速发展,代码规范和格式化工具变得尤为重要。本文介绍了如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码,包括安装插件、配置 ESLint 和 Prettier 以及 VSCode 设置的具体步骤。通过这些工具,可以显著提升编码效率和代码质量。
517 4
|
1月前
|
JavaScript 前端开发 开发者
如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码
随着前端开发技术的快速发展,代码规范和格式化工具变得尤为重要。本文介绍如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码。通过安装和配置这些工具,可以确保代码风格一致,提高代码质量和可读性。
189 1
|
2月前
|
JavaScript 前端开发 开发者
如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查并自动格式化 Vue.js 代码,提升代码质量和团队协作效率。
【10月更文挑战第8天】本文介绍了如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查并自动格式化 Vue.js 代码,提升代码质量和团队协作效率。通过安装 VSCode 插件、配置 ESLint 和 Prettier,实现代码规范检查和自动格式化,确保代码风格一致,提高可读性和维护性。
118 2
|
2月前
|
微服务
微服务实践之使用 Visual Studio 2022 调试Dapr 应用程序
微服务实践之使用 Visual Studio 2022 调试Dapr 应用程序
52 2
|
2月前
|
前端开发 JavaScript C#
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
|
4月前
|
JSON C++ 数据格式
如何在 Visual Studio Code 中使用 Prettier 格式化代码
如何在 Visual Studio Code 中使用 Prettier 格式化代码
468 0
|
7月前
在visual studio中调试程序 管理员权限添加
在visual studio中调试程序 管理员权限添加
132 0

相关实验场景

更多