【问题标题】:VSCode NodeJs: Debugger not stopping at breakpoint (WSL2/Ubuntu18)VSCode NodeJs:调试器不在断点处停止(WSL2/Ubuntu18)
【发布时间】:2020-12-21 16:11:01
【问题描述】:

使用 WSL2/Ubuntu18 我无法让 VSCode NodeJs 调试器在任何 NodeJs 应用程序的断点处停止。当我启动调试器时,它会运行(我可以在集成终端上看到输出)但断点会被忽略。

simple.js 文件,第 3 行有一个断点:

launch.json 设置为:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "NodeJs: Launch Program",
            "program": "${file}",
            "request": "launch",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "type": "pwa-node",
            "console": "integratedTerminal"
        }
    ]
}

当我按 F5 或单击 VS Code 上的“开始调试”按钮时,应用程序运行并在集成终端上显示以下内容:

/usr/bin/env 'NODE_OPTIONS=--require /home/myuser/.vscode-server/bin/ea3859d4ba2f3e577a159bc91e3074c5d85c0523/extensions/ms-vscode.js-debug/src/bootloader.bundle.js --inspect-publish-uid=http' 'VSCODE_INSPECTOR_OPTIONS={"inspectorIpc":"/tmp/node-cdp.19338-1.sock","deferredMode":false,"waitForDebugger":"","execPath":"/home/myuser/.nvm/versions/node/v14.15.1/bin/node","onlyEntrypoint":false,"autoAttachMode":"always","fileCallback":"/tmp/node-debug-callback-ff32d873905abafa"}' /home/myuser/.nvm/versions/node/v14.15.1/bin/node ./simple.js 
Debugger attached.
0
1
2
3
4
Waiting for the debugger to disconnect...

我已经从 Node10 升级到 Node14,但问题依旧。

在另一台使用 WSL1 的计算机上,使用相同的 launch.json,调试器会在给定的断点处停止。我需要在 WSL2 上额外设置一些东西吗?作为记录,这是在 WSL1 计算机的集成终端上显示的内容,然后在第 3 行停止:

/usr/bin/env 'NODE_OPTIONS=--require /home/myuser/.vscode-server/bin/ea3859d4ba2f3e577a159bc91e3074c5d85c0523/extensions/ms-vscode.js-debug/src/bootloader.bundle.js --inspect-publish-uid=http' 'VSCODE_INSPECTOR_OPTIONS={"inspectorIpc":"/tmp/node-cdp.787-3.sock","deferredMode":false,"waitForDebugger":"","execPath":"/home/myuser/.nvm/versions/node/v14.15.1/bin/node","onlyEntrypoint":false,"autoAttachMode":"always","fileCallback":"/tmp/node-debug-callback-b901b6d6e3e9799b"}' /home/myuser/.nvm/versions/node/v14.15.1/bin/node ./simple.js 
Debugger attached.
<Breakpoint hit and stop...>

附加信息,调试 Python3 文件在两台机器上都能正常工作。

两台电脑都安装了相同的 VS Code 版本。

更新:

您可以在 GitHub 上关注问题:https://github.com/microsoft/vscode/issues/113283

【问题讨论】:

    标签: node.js debugging visual-studio-code


    【解决方案1】:

    问题在于 NodeJs 应用程序正在从符号链接地址运行 - 因此调试器无法处理它。

    github 上一位 VSCode/NodeJS 开发者的回答:

    您的脚本似乎已符号链接到 /bin/nhosko/simple.js,但它的实际位置是 /mnt/c/Users//bin-nhosko/simple.js。在这种情况下,您需要指定一些标志,以便 Node 报告 vscode 看到的链接位置并告诉调试器:https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_can-i-debug-if-im-using-symlinks。我想让调试器足够智能,以便在 microsoft/vscode-js-debug#776 中自动修复此问题。

    https://github.com/microsoft/vscode/issues/113283#issuecomment-750371948

    【讨论】:

      猜你喜欢
      • 2021-04-16
      • 2021-07-21
      • 2019-04-11
      • 2023-03-12
      • 2015-06-30
      • 2010-11-25
      • 2011-07-14
      • 2013-09-27
      • 2015-07-17
      相关资源
      最近更新 更多