能否制作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中调试工作线程吗?
答案 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工具中显示出来
不幸的是,辅助线程没有。当工作线程运行时,调试器不会显示它,也不允许您放置断点或单步执行代码。 我怀疑这可能是由于以下原因: https://github.com/nodejs/node/issues/26609
VS代码
VSC没有调试工作线程的功能。有趣的是,VCS还没有调试Web Worker的功能。这是他们的明确决定: https://github.com/Microsoft/vscode-chrome-debug/issues/675