使用WSL2 2/Ubuntu18 18,我无法使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代码上的“开始调试”按钮时,应用程序将运行,并在集成终端上显示如下:
/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代码版本。
更新:
您可以在GitHub:https://github.com/microsoft/vscode/issues/113283上跟踪这个问题。
发布于 2021-09-02 09:12:18
问题是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-调试#776中自动修复这个问题。
https://github.com/microsoft/vscode/issues/113283#issuecomment-750371948
https://stackoverflow.com/questions/65396154
复制相似问题