我指的是 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.callFunctionOn
,Runtime.evaluate
但是,它似乎不允许我在多个对象上执行代码,所以我不能做一些类似检查的事情CallFrameA.objectX === CallFrameB.objectY
(例如)。
我也不确定通过 API 检索对象并进行深度相等检查是否是个好主意。一种方法是进行递归Runtime.getProperties
调用并检查除 unique 之外的所有属性的相等性objectId
。