我指的是RemoteObjects specified in the Chrome Debugging API 1.0 documentation。
我试图将后续呼叫帧与之前的呼叫帧相关联。
让我们说:
我在函数a
,b
,c
,d
上设置了断点。
我执行以下操作:
a(b(c(d())));
执行暂停,我收到每个功能的Debugger.paused
通知,并且每次都恢复。
在每个Debugger.paused
通知中,我会收到CallFrame
个数组。但是,每个objectId
对象中的CallFrame
及其属性都是唯一的。因此,我无法通过id
来比较它们。
任何人都知道某种方法吗?
Runtime.callFunctionOn
和Runtime.evaluate
允许我根据他们的ID在单个对象上执行代码,但是,它似乎不允许我在多个>上执行代码em>对象所以我不能像检查CallFrameA.objectX === CallFrameB.objectY
那样做(例如)。
我也不确定是否通过API检索对象并进行深度相等检查是个好主意。一种方法是进行递归Runtime.getProperties
调用并检查除了唯一objectId
之外的所有属性的相等性。
答案 0 :(得分:1)
我建议您针对Chromium或WebKit提出一个问题,以支持对象的唯一ID - 这是V8的本机调试协议实现的。
实际上,您可以通过 arguments 参数为Runtime.callFunctionOn提供几个ID。