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

时间:2019-01-18 10:13:32

标签: node.js visual-studio-code web-worker vscode-settings vscode-debugger

能否制作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”标志在附加到派生的工作线程上无效,也没有在工作线程内部运行的代码中添加“ debugger”语句。

他们提到参考文档中的工作线程尚未支持“检查器”程序包,因此我想这也许可以解释为什么。

克服所有这些困难,还有人能成功在VS Code中调试工作线程吗?

2 个答案:

答案 0 :(得分:1)

在最新版本的vscode-js-debug中,与最新版本的Node.js结合使用的工作人员调试为Example EntityType

答案 1 :(得分:0)

免责声明:以下答案描述了我调试工作线程的经验,但没有使用VS Code,这是最初的问题。我认为无论如何要知道其他选项还是很有用的,因为到目前为止,调试工作线程的唯一选项是Webstorm

网络风暴选项

可以使用Webstorm调试工作线程:https://blog.jetbrains.com/webstorm/2018/10/webstorm-2018-3-eap-6/ 我已经尝试过了,而且效果很好(如上面链接中所述)。

Chrome工具

我尝试使用chrome开发工具调试工作线程,遵循的方法与调试Web worker相同,但是没有用。调试网络工作者时,他们会在chrome工具中显示出来

enter image description here

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

VS代码

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