使用 vscode 调试 node 无法进入内部模块的解决

vscode 提供调试功能可以调试 node php go 等程序。

它需要先创建一个配置文件 launch.json 才能开始调试。

以 Node 为例:


自动创建的 launch.json

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

program 表示启动调试后运行的文件路径。

skipFiles 表示调试时忽略的文件,默认 <node_internals/**> 表示 Node 内部模块。

所以要调试 node 源码就要将这个配置去掉,就像:

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

但实际运行起来,并没有生效,打在 Node API 的断点的下一步并不能进入源码。

这可能是 vscode 对未指定的配置项进行了默认处理,这里将 skipFiles 字段整个注释,暗示 vscode 采用默认值,所以还要保留它:

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

这样就可以了。

去 vscode 官网上找了下,并没有找到相应的说明…

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值