1

我指的是 Chrome Debugging API 1.0 文档中指定的 RemoteObjects

背景

我正在尝试将后续调用帧与之前的调用帧相关联。

假设:我在函数a, b, c,上设置断点d。我运行以下命令: a(b(c(d())));

执行暂停,我收到Debugger.paused每个功能的通知并每次恢复。在每个Debugger.paused通知上,我都会收到一个 s 数组CallFrame。但是,objectId每个CallFrame对象中的 s 及其属性都是唯一的。因此,我无法通过它们来比较它们id

任何人都知道一些方法来做到这一点?

并且允许我根据它们的 id 在单个对象上执行代码Runtime.callFunctionOnRuntime.evaluate但是,它似乎不允许我在多个对象上执行代码,所以我不能做一些类似检查的事情CallFrameA.objectX === CallFrameB.objectY(例如)。

我也不确定通过 API 检索对象并进行深度相等检查是否是个好主意。一种方法是进行递归Runtime.getProperties调用并检查除 unique 之外的所有属性的相等性objectId

4

1 回答 1

1
  1. 我建议您针对 Chromium 或 WebKit 提出问题,以支持对象的唯一 ID——这是实现 V8 的本机调试协议的东西。

  2. 实际上,您可以通过其arguments参数向 Runtime.callFunctionOn 提供几个 id 。

于 2012-10-13T23:35:25.097 回答