Visual Studio代码 - 节点调试器断点未被命中

naz*_*bot 8 visual-studio-code

我正在尝试使用VSCode来调试我正在运行的节点应用程序.

我在一个单独的终端中启动应用程序,然后使用attach来处理配置以挂钩它.

附加工作正常,我得到一个侧面板,用我的项目中的文件说"加载脚本".如果我点击其中一个并设置断点,它将正常工作.

如果我在通过VSCode编辑器打开的文件上设置断点,则断点会变灰,当我将鼠标悬停在它上面时会说"断点设置但尚未绑定".

我怎样才能使我在代码上设置的断点绑定?

LEM*_*ANE 14

在 VSCode 设置中搜索“debug javascript use preview”,然后禁用它。它现在应该绑定所有断点。

  • 显然`v1.73.1`中没有这样的设置。 (5认同)

小智 9


我有一个类似的问题,我通过附加/src"webRoot"路径来 修复它。


这是一个演示我所做的事情的示例:

原来我的"webRoot"财产是这样写的:

 "webRoot": "${workspaceFolder}"
Run Code Online (Sandbox Code Playgroud)

现在我的webRoot路径是:

"webRoot": "${workspaceFolder}/src",
Run Code Online (Sandbox Code Playgroud)

这是我的 ./.vscode/launch.json reads:


    {
      // 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": "chrome",
          "request": "launch",
          "name": "Launch Chrome",
          "url": "http://localhost:3000",
          "webRoot": "${workspaceFolder}/src",
          "trace": true
        }
      ]
    }
Run Code Online (Sandbox Code Playgroud)

  • @kwoxer:您必须首先安装 Chrome 开发扩展(https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome)。 (2认同)

Alk*_*sai 7

在启动文件中尝试此配置:

{
    "name": "Attach to Process",
    "type": "node",
    "protocol": "inspector",
    "request": "attach",
    "stopOnEntry": false,
    "port": 5858,
    "localRoot": "${workspaceRoot}",
    "remoteRoot": "/somepath/myprojectroot",
    "sourceMaps": true
}
Run Code Online (Sandbox Code Playgroud)

确保remoteRoot路径正确,否则它将不知道在哪里查找源文件.

  • @JJP,我猜并用 `"remoteRoot": "${workspaceFolder}"` 指定了我的,它起作用了。 (3认同)
  • 仔细检查`localRoot`路径是否正确同样重要.如果未指向相应的代码库,则会出现相同的症状. (2认同)
  • 您能否更具体地说明“ remoteRoot”路径应该是什么?与$ {workspaceRoot}有什么不同? (2认同)

Joh*_*rty 6

我在 VSCode 上遇到了这个问题,1.52.1对我有用的修复是:

  1. debug.javascript.usePreview通过代码 > 首选项 > 设置禁用

  2. 添加"localRoot": "${workspaceFolder}/"到launch.json

  3. 添加"remoteRoot": "${workspaceFolder}/"到launch.json

  • 楼主,谢谢。第 1 步只对我有用。 (2认同)

小智 5

显而易见的事实是,VSCode 1.20 不允许您打断点。

我也试过 1.21,它也不让你这样做。

我回到 1.18,它按预期工作,没问题。


Leo*_*eal 5

我遇到了同样的问题......
在我尝试了很多启动配置组合后,我发现了正确的。

{
  "type": "node",
  "request": "attach",
  "name": "Attach Program",
  "protocol": "inspector",
  "restart": true,
  "skipFiles": [
    "<node_internals>/**"
  ],
  "localRoot": "${workspaceFolder}",
  "remoteRoot": "/",
}
Run Code Online (Sandbox Code Playgroud)

Ps:我使用 --inspect 参数(允许调试器附加节点)使用 nodemon 启动节点脚本。