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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法写入TTD跟踪 - 是否已完成同步模块加载? nodejs调试节点chakkara相关的知识,希望对你有一定的参考价值。

我正在尝试NodeChakra Time Travel Debug扩展以进行反向执行调试。为了这,

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]);

}

我错过了什么吗?

答案

复制并粘贴在github repo 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]);
    }
});

现在在数组赋值等处设置断点并退回应该可以正常工作。

以上是关于无法写入TTD跟踪 - 是否已完成同步模块加载? nodejs调试节点chakkara的主要内容,如果未能解决你的问题,请参考以下文章

Node.js写入YAML文件

如何判断调用的外部JS文件加载完成?

如何跟踪 HTML 5 页面上的视频是不是已完成 [重复]

Apache 无法启动 - 表示 httpd 模块已加载但未运行

模块加载规范对比

无法写入新的 MemoryStream - 流已关闭