Vscode debugger

lunch.json选项

  1. 必选字段
type: 调试器类型。这里是Node(内置的调试器),如果装了Go和PHP扩展对应的type分别为 go 和 php
request: 请求类型,目前只支持launch 和attach。launch就是以debug模式启动调试,attach就是附加在已启动的进程开启debug模式并调试
name:下来菜单显示的名字
  1. 可选字段
program:可执行文件或者调试器需要运行的文件(launch)
args:要传递给调试程序的参数(launch)
env:环境变量(launch)
cwd:当前执行目录(launch)
address: IP地址(launch & attach)
port: 端口号(launch & attach)
skipFiles: 想要忽略的文件,数组类型(launch & attach)
processId: 进程PID(attach)
  1. 目录变量有:
${workspaceRoot}:当前打开工程的路径
${file}:当前打开文件的路径
${fileBasename}:当前打开文件的名字,包含后缀名
${fileDirname}:当前打开文件所在的文件夹的路径
${fileExtname}:当前打开文件的后缀名
${cwd}:当前执行目录

调试技巧

  • 条件断点
    当表达式计算结果为true时中断,满足条件时候才会断点。


    表达式
  • skipFiles 在调试时文件要跳过一组glob模式
    我们在单步调试时一般会进入node_modules目录,但是我们一般往往只想调试我们的项目代码,所以这个时候可以通过配置skipFiles来过来详细的官方文档参考

skipFiles: [
  "${workspaceFolder}/node_modules/**/*.js",
  "${workspaceFolder}/lib/**/*.js"
]
  • 自动重启
    通过添加配合可以实现修改代码保存后自动重启调试,比如结合nodemon一起使用。
    参数说明:
    (1) runtimeExecutable: 用什么命令来执行app.js ,这里设置为nodemon,默认是node
    (2) restart:设置为true,修改代码保存后会自动重启调试
    (3) console:当点击停止按钮或者修改代码保存之后自动重启调试,但是nodemon仍然在运行, log无法打印到终端。通过设置console为integratedTerminal可以解决这个问题的。此时VS Code 终端将会打印nodemon的log。

mocha debugger

在看优秀的源代码时候,文档不一定写的很清楚,但是提供了相应的测试代码。用来debugger
使用下面配置来测试mocha的测试文件

{
  "version": "0.2.0",
  "configurations": [
  //  debugger 所有文件
    {
        "type": "node",
        "request": "launch",
        "name": "Mocha All",
        "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
        "args": [
            "--timeout",
            "999999",
            "--colors",
            "${workspaceFolder}/test"
        ],
        "console": "integratedTerminal",
        "internalConsoleOptions": "neverOpen"
    },
  //  debugger 当前文件
    {
        "type": "node",
        "request": "launch",
        "name": "Mocha Current File",
        "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
        "args": [
            "--timeout",
            "999999",
            "--colors",
            "${file}"
        ],
        "console": "integratedTerminal",
        "internalConsoleOptions": "neverOpen"
    }
  ]
}

你可能感兴趣的:(Vscode debugger)