Debugger should provide a way to not remove object actor (pause) on clientEvaluate

UNCONFIRMED
Unassigned

Status

()

Firefox
Developer Tools: Debugger
UNCONFIRMED
3 years ago
3 years ago

People

(Reporter: Vladimir Krivosheev, Unassigned)

Tracking

35 Branch
x86
Mac OS X
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

3 years ago
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/600.3.18 (KHTML, like Gecko) Version/8.0.3 Safari/600.3.18

Steps to reproduce:

Currently, Fx RDP is much more difficult to support than V8/WIP/JDI/Nashorn.

One of the main problem — on clientEvaluate all previously stored objects (actors) are gone.

On break, IDEA debugger load frames and show top frame first scope variables. Additional expressions could be automatically added (used expressions, like foo.bar in context of current function). Such expressions will be computed by evaluate (clientEvaluate request).  And there are other possible invocations of "clientEvaluate" during break.

As result, we must to send undocumented request threadGrips to hold object actors. Otherwise we get "no such actor error". (User wants to see some object properties -> we use object actor to get it's properties.)

Firebug workaround (as I see in the source code):  Fx RDP is not used, object directly used. We cannot use this workaround, because we connected remotely. 

threadGrips is not good solution, because it leads to race conditions and increase complexity (you must send threadGrips request ASAP to avoid "no such actor error").



Expected results:

Ideal solution: as WIP/V8 — resume on evaluate it is detail of implementation, it is low-level.

Or may be some flag in bindings/prototypeAndProperties/prototype/property requests to make mirrored object as thread grip. But "thread grip" is also unsuitable solution. Why debugger client should do VM work? On resume (user visible "resume", not low-level VM resume) all mirrored objects must be just released. Currently we must to explicitly release objects on resume (and ignore error "notReleasable" for some objects because it not easy to check).
(Reporter)

Updated

3 years ago
Component: Untriaged → Developer Tools: Debugger
You need to log in before you can comment on or make changes to this bug.