【发布时间】:2019-06-12 14:09:33
【问题描述】:
VS Code 的 Javascript 调试器可以用来调试节点 11 的新“工作线程”吗?工作线程以网络工作者为模型,顶部具有少量额外功能,可从新的 worker_threads 包中获得(参见https://nodejs.org/api/worker_threads.html)。除了与node的子进程外,还可以以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”标志在附加到产生的工作线程时无效,并且在工作线程内运行的代码中添加“调试器”语句也没有。
他们在参考文档中提到工作线程尚不支持“检查器”包,所以我想这可以解释为什么会这样。
尽管如此,还有没有人成功地调试到 VS Code 中的工作线程?
【问题讨论】:
-
我想此时我们唯一能做的就是在同一个文件中使用工作代码并用
isMainThread切换 -
其实没关系。即使调试在同一个文件中激活的工作人员似乎也不起作用
-
我一直在对此进行一些研究,并通过 WebStorm 的发行说明发现,Node 在 10.12 中添加了对检查 worker_threads 的支持。 blog.jetbrains.com/webstorm/2018/10/webstorm-2018-3-eap-6 如果 WebStorm 可以做到,我敢肯定,至少必须有一种方法可以使用 Chrome devtools 或什至 VSC...
标签: node.js visual-studio-code web-worker vscode-settings vscode-debugger