Visual Studio节点:调试到工作线程(节点11)

问题描述 投票:6回答:1

VS Code的Javascript调试器可以调试节点11的新“工作线程”吗?工作线程是在具有少量额外功能的Web工作者之后建模的,并且可以从新的worker_threads包中获得(请参阅https://nodejs.org/api/worker_threads.html)。除了节点的子进程之外,还可以使用SharedArrayBuffers形式的工作线程共享内存。

我的VS Code启动配置如下所示:

   {
        "type": "node",
        "request": "launch",
        "name": "Mocha Tests",
        "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
        "runtimeArgs": [
            "--experimental-wasm-threads",
            "--experimental-worker"
        ],
        "args": [
            "-u", "tdd",
            "--timeout", "100000",
            "--colors", "${workspaceFolder}/test"
        ],
        "internalConsoleOptions": "openOnSessionStart",
        "autoAttachChildProcesses": true
   }

我可以调试主节点脚本,但“autoAttachChildProcesses”标志无法附加到生成的关闭工作线程,也没有在工作线程内运行的代码中添加“调试器”语句。

他们提到参考文档中的工作线程尚不支持“inspector”包,所以我想这可以解释为什么会这样。

在所有这些可能性中,还有人还成功调试VS Code中的工作线程吗?

node.js visual-studio-code web-worker vscode-settings vscode-debugger
1个回答
1
投票

免责声明:下面的答案描述了我调试工作线程的经验,但没有使用VS Code,这是最初的问题。我认为无论如何都知道替代选项会很有用,因为从今天开始,调试工作线程的唯一选择就是Webstorm。

Webstorm选项

可以使用Webstorm调试工作线程:https://blog.jetbrains.com/webstorm/2018/10/webstorm-2018-3-eap-6/我已经尝试过它并且它工作得非常好(如上面链接中所述)。

Chrome工具

我尝试使用chrome dev工具调试工作线程,遵循调试Web worker的相同方法,但它不起作用。在调试Web worker时,它们在chrome工具中显示如下

enter image description here

不幸的是,工作线程没有。当工作线程运行时,调试器不显示它,并且不允许您放置断点或单步执行代码。我怀疑这可能是因为:https://github.com/nodejs/node/issues/26609

VS代码

VSC没有调试工作线程的功能。有趣的是,VCS也没有调试Web Workers的功能。这是他们的明确决定:https://github.com/Microsoft/vscode-chrome-debug/issues/675

© www.soinside.com 2019 - 2024. All rights reserved.