debugging VSCode NodeJs:调试器未在断点处停止(WSL 2/Ubuntu 18)

1zmg4dgp  于 2023-08-06  发布在  Vscode
关注(0)|答案(2)|浏览(143)

使用WSL 2/Ubuntu 18,我无法使VSCode NodeJs Debugger在任何NodeJs应用程序的断点上停止。当我启动调试器时,它会运行(我可以在集成终端上看到输出),但断点会被忽略。
simple.js文件,在第3行有一个断点:
x1c 0d1x的数据
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...


我已经从Node 10升级到Node 14了,但问题仍然存在。
在另一台使用WSL 1的计算机上,使用相同的launch.json,调试器在给定的断点处停止。我是否需要在WSL 2上额外设置一些东西?为了记录在案,这是在WSL 1计算机的集成终端上显示的内容,然后它停在第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

v7pvogib

v7pvogib1#

问题是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

rmbxnbpk

rmbxnbpk2#

对于我来说,在JavaScript调试终端中的visual studio代码我遇到了这个问题

--inspect-publish-uid= is not allowed in NODE_OPTIONS

字符串
我将visual studio代码移到Application文件夹中,结果就成功了。之前它是在下载文件夹中。

相关问题