无法编写TTD跟踪-同步模块加载是否已完成? nodejs调试节点chakkara

时间:2018-11-27 09:37:29

标签: node.js debugging visual-studio-code vscode-debugger

我正在尝试使用 NodeChakra时间旅行调试扩展程序进行反向执行调试。为此,

1)我安装了此扩展 VSCode

2)添加启动配置->添加配置->时间旅行节点启动->设置要启动的程序文件

这里的配置看起来像

{
   "type": "node",
   "request": "launch",
   "name": "Launch Program",
   "program": "${workspaceFolder}/demo.js"
}

单步执行有效,但是当我尝试单步执行时,它会显示错误

TTD: Failed to launch time-travel debugging session -- "Could not write TTD trace -- has synchronous module loading completed?"

这是我正在检查的代码

console.log("hi");
var array = [1, 2, 3]
for (let index = 0; index < array.length; index++) {
    console.log(array[index]);

}

我想念什么吗?

1 个答案:

答案 0 :(得分:1)

从github存储库here上询问的类似问题中复制并粘贴。

Node.js加载过程有点复杂,因此,TTD进程不会记录同步模块加载活动的执行情况(基本上是事件循环开始分派之前的所有操作),因此需要时间旅行调试器无法重播应用程序的这一部分。

我从stackoverflow帖子中获取了代码,并将其包装在setImmediate中,以便在同步加载后执行:

setImmediate(() => {
    console.log("hi");
    var array = [1, 2, 3]
    for (let index = 0; index < array.length; index++) {
        console.log(array[index]);
    }
});

现在在数组分配等位置设置断点并后退应该可以正常工作。